From: Iain Patterson Date: Thu, 30 Sep 2010 13:05:00 +0000 (+0100) Subject: Initial tmux configuration. X-Git-Url: http://git.iain.cx/?a=commitdiff_plain;h=e7ec1a4e869c548c8877d4fbae151fbb2b4d9faf;p=profile.git Initial tmux configuration. Try to emulate screen in areas where screen works well. Set a consistent colour scheme. Use Vim-like key bindings where possible. --- diff --git a/.tmux.conf b/.tmux.conf new file mode 100644 index 0000000..4e5fda4 --- /dev/null +++ b/.tmux.conf @@ -0,0 +1,157 @@ +################################################################################ +# Options. +################################################################################ +# Use vi keys for scrolling etc. +# Use lsk -t vi|emacs- to see binds in table choice, copy or edit. +setw -g mode-keys vi +set -g status-keys vi + +# Don't wait so long to parse escape sequences. +set -s escape-time 100 + +# Ensure KRB5CCNAME is preserved in the environment. +set -g update-environment 'DISPLAY WINDOWID SSH_ASKPASS SSH_AUTH_SOCK SSH_AGENT_PID SSH_CONNECTION KRB5CCNAME' + +# Clock. +setw -g clock-mode-colour white +setw -g clock-mode-style 24 + +################################################################################ +# Screen compatibility. +################################################################################ +set -g prefix C-p +unbind C-b +bind C-p last-window +bind C-l refresh-client +bind l refresh-client +bind S split-window -v +bind | split-window -h +bind C-[ copy-mode +bind ] paste-buffer +bind C-] paste-buffer +bind _ setw monitor-activity +bind * list-clients +bind < command-prompt -p "Load buffer from file:" 'load-buffer %1' +bind > command-prompt -p "Save buffer to file:" 'save-buffer %1' + +################################################################################ +# Hotkeys. +################################################################################ +# Up and down like Vim. +bind j select-pane -D +bind C-j select-pane -D +bind k select-pane -U +bind C-k select-pane -U +# Previous and next window kinda like Vim. +bind h previous-window +bind C-h previous-window +bind l next-window +bind C-l next-window +# And for panes. +bind H select-pane -L +bind L select-pane -R +# Top and bottom. +bind J select-pane -t bottom +bind K select-pane -t top +# Swap panes. +bind w swap-pane +# Show panes. +bind = display-panes +# Move the current pane into a separate window. +bind b break-pane +# Split another pane into this window. +bind B command-prompt -p "Select [.] to join:" 'join-pane -t %1' +# Next pane. +bind i select-pane -t :.+ +bind C-i select-pane -t :.+ +bind I select-pane -t :.- +# Layouts. +bind . select-layout even-vertical +bind , select-layout tiled +# Simulate maximising the window. +bind / select-layout even-vertical \; swap-pane -s top \; resize-pane -D 9999 +# Show windows +bind - list-windows +# Set current window title. +bind t command-prompt -p "Set window's title to:" 'rename-window %1' +# Show clock. +bind T clock-mode +# Monitor window for a particular string. +bind m command-prompt -p "Monitor:" 'setw monitor-content %1' +bind M setw monitor-content "" +# Synchronise input. +bind \; setw synchronize-panes +# Choose buffer to paste. +bind } choose-buffer 'paste-buffer -b %%' +# Enter copy-mode and scroll up. +bind { copy-mode -u +# Choose buffer to show. +# XXX: As of tmux 1.3 this doesn't work. +#bind '"' choose-buffer 'show-buffer -b %%' +bind '"' list-buffers \; command-prompt -p "Choose buffer to show:" 'show-buffer -b %1' +bind "'" show-buffer + +################################################################################ +# Fix missing binds in Vi modes. +################################################################################ +# Command prompt. +bind -t vi-edit C-u delete-line +# We can't delete a word so ^w can clear the whole line for now. +bind -t vi-edit C-w delete-line +bind -t vi-edit Up history-up +bind -t vi-edit Down history-down +bind -t vi-edit Left cursor-left +bind -t vi-edit Right cursor-right +# Copy mode. +bind -t vi-copy y copy-selection + +################################################################################ +# Terminal settings. +################################################################################ +set -g default-terminal 'screen-256color' +# PuTTY needs help to set bold colours. +set -g terminal-overrides 'putty-256color:C8' + +################################################################################ +# Window and pane settings. +################################################################################ +set -g display-panes-time 1000 +set -g display-panes-active-colour white +set -g display-panes-colour colour17 +# Command entry. +set -g message-bg colour90 +set -g message-fg white +# Active pane +set -g pane-active-border-bg default +set -g pane-active-border-fg white +# Inactive pane. +set -g pane-border-bg default +set -g pane-border-fg colour17 +# Messages. +setw -g mode-bg blue +setw -g mode-fg white +# Monitored windows (in reverse video). +setw -g window-status-alert-bg red +setw -g window-status-alert-fg white + +################################################################################ +# Caption settings. +################################################################################ +# Don't update the title bar. +set -g set-titles off +# Status line black on white. +set -g status-attr none +set -g status-bg white +set -g status-fg black +# Current window white on blue. +setw -g window-status-current-attr none +setw -g window-status-current-bg colour17 +setw -g window-status-current-fg white +# No border. +set -g status-left '' +set -g status-right '' +# Window flags. +setw -g window-status-current-format '[#I.#P#F #W]' +setw -g window-status-format ' #I.#P#F #W ' +# Don't set window name. XXX: Issue with PROMPT_COMMAND. +#setw -g automatic-rename off