1 ################################################################################
3 ################################################################################
4 # Use vi keys for scrolling etc.
5 # Use lsk -t vi|emacs-<table> to see binds in table choice, copy or edit.
9 # Don't wait so long to parse escape sequences.
10 set -s escape-time 100
13 setw -g clock-mode-colour white
14 setw -g clock-mode-style 24
17 set -g history-limit 4096
19 # Don't use the mouse to select text by default.
20 # It has two important flaws. Double-clicking to select a word doesn't work.
21 # Middle clicking to paste doesn't work.
22 set -g mouse-resize-pane off
23 set -g mouse-select-pane off
24 set -g mouse-select-window off
27 ################################################################################
28 # Screen compatibility.
29 ################################################################################
34 bind C-l refresh-client
36 bind S split-window -v
37 bind | split-window -h
41 bind _ setw monitor-activity
43 bind < command-prompt -p "Load buffer from file:" 'load-buffer %1'
44 bind > command-prompt -p "Save buffer to file:" 'save-buffer %1'
46 ################################################################################
48 ################################################################################
49 # Up and down like Vim.
51 bind C-j select-pane -D
53 bind C-k select-pane -U
54 # Previous and next panes kinda like Vim.
56 bind C-h select-pane -L
58 bind C-l select-pane -R
60 bind H previous-window
62 # Last window like Vim.
72 # Move the current pane into a separate window.
74 # Split another pane into this window.
75 bind B command-prompt -p "Select [<window>.]<pane> to join:" 'join-pane -s %1'
77 bind C-\ split-window -v
79 bind i select-pane -t :.+
80 bind C-i select-pane -t :.+
81 bind I select-pane -t :.-
83 bind . select-layout even-vertical
84 bind , select-layout tiled
85 # Simulate maximising the window.
86 bind / select-layout even-vertical \; swap-pane -s top \; resize-pane -D 9999
89 bind M-0 select-window -t 10
90 bind M-1 select-window -t 11
91 bind M-2 select-window -t 12
92 bind M-3 select-window -t 13
93 bind M-4 select-window -t 14
94 bind M-5 select-window -t 15
95 bind M-6 select-window -t 16
96 bind M-7 select-window -t 17
97 bind M-8 select-window -t 18
98 bind M-9 select-window -t 19
99 # Set current window title.
100 bind t command-prompt -p "Set window's title to:" 'rename-window %1'
103 # Monitor window for a particular string.
104 bind m command-prompt -p "Monitor:" 'setw monitor-content %1'
105 bind M setw monitor-content ""
107 bind \; setw synchronize-panes
108 # Choose buffer to paste.
109 bind } choose-buffer 'paste-buffer -b %%'
110 # Enter copy-mode and scroll up.
112 # Choose buffer to show.
113 # XXX: As of tmux 1.3 this doesn't work.
114 #bind '"' choose-buffer 'show-buffer -b %%'
115 bind '"' list-buffers \; command-prompt -p "Choose buffer to show:" 'show-buffer -b %1'
117 # Toggle mouse mode as it is useful despite the flaws listed above.
118 bind C-m set -g mouse-resize-pane \; set -g mouse-select-pane \; set -g mouse-select-window \; set -g mode-mouse
120 ################################################################################
121 # Fix missing binds in Vi modes.
122 ################################################################################
124 bind -t vi-edit C-u delete-line
125 # We can't delete a word so ^w can clear the whole line for now.
126 bind -t vi-edit C-w delete-line
127 bind -t vi-edit Up history-up
128 bind -t vi-edit Down history-down
129 bind -t vi-edit Left cursor-left
130 bind -t vi-edit Right cursor-right
132 bind -t vi-copy y copy-selection
134 ################################################################################
136 ################################################################################
137 set -g default-terminal 'screen-256color'
138 # PuTTY needs help to set bold colours.
139 set -a -g terminal-overrides ',putty-256color:C8:Ms=\\E]52;%p1%s;%p2%s\\007m'
141 ################################################################################
142 # Window and pane settings.
143 ################################################################################
144 set -g display-panes-time 1000
145 set -g display-panes-active-colour white
146 set -g display-panes-colour colour17
148 set -g message-bg colour90
149 set -g message-fg white
151 set -g pane-active-border-bg default
152 set -g pane-active-border-fg white
154 set -g pane-border-bg default
155 set -g pane-border-fg colour17
158 setw -g mode-fg white
159 # Monitored windows (in reverse video).
160 setw -g window-status-alert-bg red
161 setw -g window-status-alert-fg white
163 ################################################################################
165 ################################################################################
166 # Don't update the title bar.
167 set -g set-titles off
168 # Status line black on white.
169 set -g status-attr none
170 set -g status-bg white
171 set -g status-fg black
172 # Current window white on blue.
173 setw -g window-status-current-attr none
174 setw -g window-status-current-bg colour17
175 setw -g window-status-current-fg white
177 set -g status-left ''
178 set -g status-right '#[fg=white,bg=colour8][#H:#S]'
180 setw -g window-status-current-format '[#I.#P#F #W]'
181 setw -g window-status-format ' #I.#P#F #W '
182 # Don't set window name. XXX: Issue with PROMPT_COMMAND.
183 #setw -g automatic-rename off