]> 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 6416c24265f9bfd240e0f3ecb58eed9f51059bb9..ef1626023fbafbdaed5a5fe6555dd665e0691406 100644 (file)
@@ -2,16 +2,15 @@
 set-option -g base-index 1
 set-option -g pane-base-index 1
 # Renumber windows sequentially after closing any of them
-#set-option -g renumber-windows on
-# Option renumber-windows was implemented in tmux 1.7, tmux in Debian 7 is 1.6.
-
-# Attempt to set the client terminal title
-set-option -g set-titles on
-# Terminal emulator window title
-set -g set-titles-string 'tmux #S:#I.#P [ #W ]'
+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
@@ -29,18 +28,76 @@ set-window-option -g aggressive-resize on
 set-option -g visual-activity on
 set-window-option -g monitor-activity on
 
-# Soften status bar color from black on harsh green to black on cyan
-set-option -g status-fg black
-set-option -g status-bg cyan
-
 # Clock color
 set-window-option -g clock-mode-colour black
 
+# Attempt to set the client terminal title
+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-style bg=black,fg=white
+
+# Soften status bar color from black on harsh green to black on cyan
+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]'
+
+# set-option -g status-interval 5
+# set-option -g status-right '%H:%M'
+set-option -g status-right ''
+
 # Increase scrollback lines
 set-option -g history-limit 1000
 
-# C-b C-a for last-window
-bind-key C-a last-window
+# Set the command prefix to match GNU screen (CTRL+a)
+# set-option -g prefix C-a
+#
+# Use C-a C-a key to send prefix instead of the default
+# unbind-key C-b
+# bind-key C-a send-prefix
+#
+# <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
 
-# C-b R to reload config without restart
-bind-key R source-file ~/.tmux.conf
+# 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"