about summary refs log tree commit diff
path: root/configs/shared/.tmux.conf
diff options
context:
space:
mode:
authorWilliam Carroll <wpcarro@gmail.com>2017-06-23T17·01-0400
committerWilliam Carroll <wpcarro@gmail.com>2017-06-23T17·01-0400
commitf344f2e370fbf88a0306b6a01c99f386a13953c7 (patch)
tree81c19178bdc8986b59d3bca5e91efd9f01690941 /configs/shared/.tmux.conf
parente51d11e4bc344f624ec90afd299ac1dcb5e6e1fb (diff)
Adds os detection for bootstrapping configs
Diffstat (limited to 'configs/shared/.tmux.conf')
-rw-r--r--configs/shared/.tmux.conf217
1 files changed, 217 insertions, 0 deletions
diff --git a/configs/shared/.tmux.conf b/configs/shared/.tmux.conf
new file mode 100644
index 000000000000..9d1d151bcecd
--- /dev/null
+++ b/configs/shared/.tmux.conf
@@ -0,0 +1,217 @@
+# change tmux leader
+unbind C-b
+set -g prefix C-q
+bind C-q send-prefix
+
+
+# COLORS!
+set -g default-terminal "tmux-256color-italic"
+set -ga terminal-overrides ",xterm-256color-italic:Tc"
+
+
+#copy-paste fixes: http://evertpot.com/osx-tmux-vim-copy-paste-clipboard/
+# Copy-paste integration
+set-option -g default-command "reattach-to-user-namespace -l zsh"
+
+
+# Use vim keybindings in copy mode
+setw -g mode-keys vi
+
+
+# Setup 'v' to begin selection as in Vim
+bind-key -t vi-copy v begin-selection
+bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy"
+
+
+# Update default binding of `Enter` to also use copy-pipe
+unbind -t vi-copy Enter
+bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy"
+
+
+# Bind ']' to use pbpaste
+bind ] run "reattach-to-user-namespace pbpaste | tmux load-buffer - && tmux paste-buffer"
+
+
+# fix for slow ESC issues
+set -s escape-time 0
+
+
+# start window indicies at 1
+set -g base-index 1
+
+
+######################
+### DESIGN CHANGES ###
+######################
+
+# panes
+set -g pane-border-fg black
+set -g pane-active-border-fg brightred
+
+## Status bar design
+# status line
+set -g status-utf8 on
+set -g status-justify left
+set -g status-bg default
+set -g status-fg colour12
+set -g status-interval 2
+
+# messaging
+set -g message-fg black
+set -g message-bg yellow
+set -g message-command-fg blue
+set -g message-command-bg black
+
+#window mode
+setw -g mode-bg colour6
+setw -g mode-fg colour0
+
+# window status
+setw -g window-status-format " #F#I:#W#F "
+setw -g window-status-current-format " #F#I:#W#F "
+setw -g window-status-format "#[fg=magenta]#[bg=black] #I #[bg=cyan]#[fg=colour8] #W "
+setw -g window-status-current-format "#[bg=brightmagenta]#[fg=colour8] #I #[fg=colour8]#[bg=colour14] #W "
+setw -g window-status-current-bg colour0
+setw -g window-status-current-fg colour11
+setw -g window-status-current-attr dim
+setw -g window-status-bg green
+setw -g window-status-fg black
+setw -g window-status-attr reverse
+
+# Info on left (I don't have a session display for now)
+set -g status-left ''
+
+# The modes {
+setw -g clock-mode-colour colour135
+setw -g mode-attr bold
+setw -g mode-fg colour196
+setw -g mode-bg colour238
+
+# }
+# The panes {
+
+set -g pane-border-bg colour235
+set -g pane-border-fg colour238
+set -g pane-active-border-bg colour236
+set -g pane-active-border-fg colour51
+
+# }
+# The statusbar {
+
+set -g status-position bottom
+set -g status-bg colour234
+set -g status-fg colour137
+set -g status-attr dim
+set -g status-left ''
+set -g status-right '#[fg=colour233,bg=colour241,bold] %d/%m #[fg=colour233,bg=colour245,bold] %H:%M:%S '
+set -g status-right-length 50
+set -g status-left-length 20
+
+setw -g window-status-current-fg colour81
+setw -g window-status-current-bg colour238
+setw -g window-status-current-attr bold
+setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour255]#W#[fg=colour50]#F '
+
+setw -g window-status-fg colour138
+setw -g window-status-bg colour235
+setw -g window-status-attr none
+setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F '
+
+setw -g window-status-bell-attr bold
+setw -g window-status-bell-fg colour255
+setw -g window-status-bell-bg colour1
+
+# }
+# The messages {
+
+set -g message-attr bold
+set -g message-fg colour232
+set -g message-bg colour166
+
+# }
+
+
+# window naming nonsense
+set-window-option -g automatic-rename on
+set-window-option -g allow-rename off
+
+
+# new windows carry over current working directory
+bind c new-window -c '#{pane_current_path}'
+
+
+# Make tmux work like vi
+set-window-option -g mode-keys vi
+bind h select-pane -L
+bind j select-pane -D
+bind k select-pane -U
+bind l select-pane -R
+
+
+# Easier window swaps
+bind -n C-left swap-window -t -1
+bind -n C-right swap-window -t +1
+
+
+# Easier window moves
+bind -n m-left previous-window
+bind -n m-right next-window
+
+
+# window resizing
+bind -n S-Up resize-pane -U 5
+bind -n S-Down resize-pane -D 5
+bind -n S-Left resize-pane -L 10
+bind -n S-Right resize-pane -R 10
+
+
+# Option + number to jump to window
+bind -n m-0 select-window -t 0
+bind -n m-1 select-window -t 1
+bind -n m-2 select-window -t 2
+bind -n m-3 select-window -t 3
+bind -n m-4 select-window -t 4
+bind -n m-5 select-window -t 5
+bind -n m-6 select-window -t 6
+bind -n m-7 select-window -t 7
+bind -n m-8 select-window -t 8
+bind -n m-9 select-window -t 9
+
+
+# Option + l to toggle between sessions
+# bind -n m-l switch-client -l
+bind -n m-s choose-session
+
+
+# split window shortcuts, maintaing the working directory
+bind | split-window -h -c '#{pane_current_path}'
+bind \ split-window -h -c '#{pane_current_path}'
+bind - split-window -v -c '#{pane_current_path}'
+bind _ split-window -v -c '#{pane_current_path}'
+
+bind '"' split-window -c "#{pane_current_path}"
+bind % split-window -h -c "#{pane_current_path}"
+bind c new-window -c "#{pane_current_path}"
+
+# source '/usr/local/lib/python2.7/site-packages/powerline/bindings/tmux/powerline.conf'
+
+bind-key h set -g status
+
+set-option -g status on
+set-option -g status-interval 2
+# set-option -g status-utf8 on
+set-option -g status-justify "centre"
+set-option -g status-left-length 60
+set-option -g status-right-length 90
+# set-option -g status-left "#(~/dotfiles/tmux-powerline/powerline.sh left)"
+# set-option -g status-right "#(~/dotfiles/tmux-powerline/powerline.sh right)"
+
+
+# Bindings for "christoomey/vim-tmux-navigator"
+is_vim="ps -o state= -o comm= -t '#{pane_tty}' \
+    | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'"
+bind-key -n C-h if-shell "$is_vim" "send-keys C-h"  "select-pane -L"
+bind-key -n C-j if-shell "$is_vim" "send-keys C-j"  "select-pane -D"
+bind-key -n C-k if-shell "$is_vim" "send-keys C-k"  "select-pane -U"
+bind-key -n C-l if-shell "$is_vim" "send-keys C-l"  "select-pane -R"
+bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l"