]> git.phdru.name Git - dotfiles.git/blobdiff - .tmux.conf
lib/config/gpg-agent-update-tty: Change gpg-connect-agent command line
[dotfiles.git] / .tmux.conf
index b0a2d828551edfc0673388ff9537b2a49dda3a11..ef1626023fbafbdaed5a5fe6555dd665e0691406 100644 (file)
@@ -4,8 +4,13 @@ set-option -g pane-base-index 1
 # Renumber windows sequentially after closing any of them
 set-option -g renumber-windows on
 
+# Keyboard
+set-window-option -g mode-keys vi
 # Pass [Ctrl]+[PgUp/PgDn]
 set-window-option -g xterm-keys on
+# Don't wait for [Esc] to allow fast switching from insert mode to normal in vim
+# Set (and export) environment variable SLOWTERM to override.
+if-shell "test -z $SLOWTERM" "set-option -gs escape-time 0"
 
 # Mouse
 set-window-option -g mode-mouse on
@@ -31,29 +36,21 @@ set-option -g set-titles on
 # Terminal emulator window title
 set-option -g set-titles-string 'tmux #S.#I.#P #T' # session, window number, pane number, title
 
-set-option -g message-bg black
-set-option -g message-fg white
+set-option -g message-style bg=black,fg=white
 
 # Soften status bar color from black on harsh green to black on cyan
-set-option -g status-bg cyan
-set-option -g status-fg black
-
-set-option -g pane-active-border-bg default
-set-option -g pane-active-border-fg green
-set-option -g pane-border-bg default
-set-option -g pane-border-fg white
-
-set-window-option -g mode-bg black
-
-set-window-option -g window-status-bg cyan
-set-window-option -g window-status-current-attr default
-set-window-option -g window-status-current-fg blue
-set-window-option -g window-status-bell-attr default
-set-window-option -g window-status-bell-fg red
-set-window-option -g window-status-content-attr default
-set-window-option -g window-status-content-fg yellow
-set-window-option -g window-status-activity-attr default
-set-window-option -g window-status-activity-fg yellow
+set-option -g status-style bg=cyan,fg=black
+
+set-option -g pane-active-border-style bg=default,fg=red
+set-option -g pane-border-style bg=default,fg=blue
+
+set-window-option -g mode-style bg=black
+
+set-window-option -g window-status-activity-style fg=yellow
+set-window-option -g window-status-bell-style fg=red
+set-window-option -g window-status-content-style fg=magenta
+set-window-option -g window-status-current-style bg=blue,fg=white
+set-window-option -g window-status-style bg=cyan,fg=black
 
 set-option -g status-left '[#S.#I.#P]'
 
@@ -64,9 +61,6 @@ set-option -g status-right ''
 # Increase scrollback lines
 set-option -g history-limit 1000
 
-# <prefix> R to reload config without restart
-bind-key R source-file ~/.tmux.conf \; display "Reloaded!"
-
 # Set the command prefix to match GNU screen (CTRL+a)
 # set-option -g prefix C-a
 #
@@ -76,3 +70,34 @@ bind-key R source-file ~/.tmux.conf \; display "Reloaded!"
 #
 # <prefix> C-a for last-window
 # bind-key C-a last-window
+
+# <prefix> R to reload config without restart
+bind-key R source-file ~/.tmux.conf \; display "Configuration reloaded!"
+
+# vim-like navigation
+unbind-key h; bind-key h select-pane -L
+unbind-key j; bind-key j select-pane -D
+unbind-key k; bind-key k select-pane -U
+unbind-key l; bind-key l select-pane -R
+
+bind H resize-pane -L 10
+bind J resize-pane -D 10
+bind K resize-pane -U 10
+bind L resize-pane -R 10
+
+bind -r C-h select-window -t :-
+bind -r C-l select-window -t :+
+
+# Use vertical and horizontal chars to split the screen
+bind-key | split-window -h
+bind-key - split-window -v
+
+bind-key -t vi-copy v begin-selection
+bind-key -t vi-copy y copy-selection
+bind-key -t vi-copy r rectangle-toggle
+bind P paste-buffer
+
+# Copy tmux copy buffer to X clipboard
+bind -t vi-copy C-y copy-pipe "xclip -i"
+# Copy X clipboard to tmux paste buffer
+bind C-p run-shell "xclip -o | tmux load-buffer -; tmux paste-buffer"