# ~/.tmux.conf # # See the following files: # # /opt/local/share/doc/tmux/t-williams.conf # /opt/local/share/doc/tmux/screen-keys.conf # /opt/local/share/doc/tmux/vim-keys.conf # # URLs to read: # # http://blog.yjl.im/2009/11/migrating-to-tmux-from-gnuscreen.html # http://blog.hawkhost.com/2010/06/28/tmux-the-terminal-multiplexer/ # http://blog.hawkhost.com/2010/07/02/tmux-%E2%80%93-the-terminal-multiplexer-part-2/ # http://www.dayid.org/os/notes/tm.html # # Other sample tmux.conf files # # http://www.mindfuzz.net/?p=178 # # ----------------------------------------------------------------------------- # Global settings # Set prefix key to Ctrl-a unbind-key C-b set-option -g prefix C-a # send the prefix to client inside window bind-key C-a send-prefix # toggle last window like screen bind-key C-a last-window # open a man page in new window bind-key / command-prompt "split-window 'exec man %%'" # quick view of processes #bind-key "~" split-window "exec htop" # scrollback buffer n lines set -g history-limit 5000 # listen for activity on all windows set -g bell-action any #set -g bell-action none # start window indexing at zero (default) set -g base-index 0 # instructs tmux to expect UTF-8 sequences setw -g utf8 on sest -g utf8 on # tell tmux to use 256 colour terminal set -g default-terminal "screen-256color" # xterm-style function key sequences setw -g xterm-keys on # control automatic window renaming setw -g automatic-rename off # enable wm window titles set -g set-titles on # wm window title string (uses statusbar variables) #set -g set-titles-string "tmux.#I.#W" # don't close windows. just deactivate them. use respawn-window to reactivate. #setw -g remain-on-exit on # Key bindings # reload settings bind-key R source-file ~/.tmux.conf # detach client bind-key d detach bind-key C-d detach # choose a client to detach bind-key D choose-client # choose window/session bind-key "'" choose-window bind-key '"' choose-session # display visible indicator of each pane bind-key w display-panes # navigate panes using jk, and ctrl+jk (no prefix) bind-key -r j select-pane -t :.- bind-key -r k select-pane -t :.+ bind-key -r C-j select-pane -t :.- bind-key -r C-k select-pane -t :.+ # navigate windows using hl, and ctrl-hl (no prefix) bind-key -r h select-window -t :- bind-key -r l select-window -t :+ bind-key -r C-h select-window -t :- bind-key -r C-l select-window -t :+ # swap panes bind-key -r J swap-pane -D bind-key -r K swap-pane -U # Ctrl-Left/Right cycles thru windows (no prefix) bind-key -n "C-Left" select-window -t :- bind-key -n "C-Right" select-window -t :+ # Ctrl-Up/Down cyles thru panes (no prefix) bind-key -n "C-Up" select-pane -t :.- bind-key -n "C-Down" select-pane -t :.+ # Cycle to next pane bind-key -r Tab select-pane -t :.+ # kill current pane/window bind-key q confirm-before kill-pane bind-key Q confirm-before kill-window bind-key C-q confirm-before kill-pane #bind-key x kill-pane #bind-key X kill-window # window layouts (emacs-like) #bind-key 1 break-pane #bind-key 2 select-layout even-vertical #bind-key 3 select-layout even-horizontal #bind-key o select-pane -U # specific window layouts #bind -r y next-layout #bind o select-layout "active-only" #bind O select-layout "main-vertical" # copying and pasting bind-key [ copy-mode bind-key ] paste-buffer -s \015 # vi-style controls for copy mode setw -g mode-keys vi # enable mouse selection in copy mode setw -g mode-mouse on # list all paste buffers (default key is '#') bind-key b list-buffers # choose buffer to paste interactively (default key was '=') bind-key p choose-buffer # delete the most recently copied buffer of text (default key was '-') bind-key x delete-buffer # Screen-like key bindings # new window bind-key C-c new-window bind-key c new-window # next bind-key -r Space next-window bind-key -r "C-Space" next-window # prev bind-key BSpace previous-window # title (default key in tmux is ',') bind-key A command-prompt "rename-window %%" # quit bind-key \ confirm-before kill-server # displays bind-key * list-clients # redisplay (default key in tmux is 'r') #bind-key C-l refresh-client #bind-key l refresh-client bind-key r refresh-client # Split windows like vim # vim's definition of a horizontal/vertical split is reversed from tmux's #bind-key s split-window -v #bind-key v split-window -h # alternatively, use better mnemonics for horizontal/vertical splits bind-key - split-window -v bind-key _ split-window -v bind-key | split-window -h # resize panes like vim bind-key -r < resize-pane -L 3 bind-key -r > resize-pane -R 3 bind-key -r + resize-pane -U 1 bind-key -r = resize-pane -D 1 # Statusbar settings # toggle statusbar bind-key s set status # use vi-style key bindings in the status line set -g status-keys vi # amount of time for which status line messages and other indicators # are displayed. time is in milliseconds. set -g display-time 2000 # default statusbar colors set -g status-fg white set -g status-bg default set -g status-attr default # default window title colors setw -g window-status-fg white setw -g window-status-bg default setw -g window-status-attr dim # active window title colors setw -g window-status-current-fg cyan setw -g window-status-current-bg default #setw -g window-status-current-attr bright setw -g window-status-current-attr underscore # command/message line colors set -g message-fg white set -g message-bg black set -g message-attr bright # Session initialization # Note: # new - alias for new-session # neww - alias for new-window # first session #new -d -s0 #neww -d #neww -d #neww -d # second session #new -d -s1 #neww -d #neww -d #select-window -t1 # ----------------------------------------------------------------------------- # vim: fen fdl=0 fdm=marker