############################## # _ # | |_ _ __ ___ _ ___ __ # | __| '_ ` _ \| | | \ \/ / # | |_| | | | | | |_| |> < # \__|_| |_| |_|\__,_/_/\_\ # ############################# # # COPY AND PASTE # http://robots.thoughtbot.com/tmux-copy-paste-on-os-x-a-better-future # # Use vim keybindings in copy mode setw -g mode-keys vi # Setup 'v' to begin selection as in Vim #bind-key -t vi-copy v begin-selection #bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy" # Update default binding of `Enter` to also use copy-pipe # unbind -t vi-copy Enter # bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy" # ############################################################################ ############################################################################ # Reset Prefix ############################################################################ set -g prefix C-a bind-key a send-prefix # for nested tmux sessions ############################################################################ # Global options ############################################################################ # large history set-option -g history-limit 10000 # colors setw -g mode-bg black set-option -g default-terminal "screen-256color" #"xterm-256color" # "screen-256color" set-option -g pane-active-border-fg green # utf8 support #set-window-option -g utf8 on # basic settings set-window-option -g xterm-keys on # for vim set-window-option -g mode-keys vi # vi key set-window-option -g monitor-activity on set-window-option -g window-status-current-fg white setw -g window-status-current-attr reverse # Automatically set window title setw -g automatic-rename # use mouse # More on mouse support http://floriancrouzat.net/2010/07/run-tmux-with-mouse-support-in-mac-os-x-terminal-app/ #setw -g mode-mouse on #setw -g mouse-resize-pane on #set -g mouse-select-window on #set -g mouse-select-pane on set -g mouse on set -g history-limit 30000 set -g terminal-overrides 'xterm*:smcup@:rmcup@' # vi movement keys # set-option -g status-keys vi ############################################################################ # Status Bar ############################################################################ #set-option -g status-utf8 on set-option -g status-justify right set-option -g status-bg black # colour213 # pink set-option -g status-fg cyan set-option -g status-interval 5 set-option -g status-left-length 30 set-option -g status-left '#[fg=magenta]» #[fg=blue,bold]#T#[default]' set-option -g status-right '#[fg=red,bold][[ #(git branch) branch ]] #[fg=cyan]»» #[fg=blue,bold]###S #[fg=magenta]%R %m-%d#(acpi | cut -d ',' -f 2)#[default]' set-option -g visual-activity on # Titles (window number, program name, active (or not) set-option -g set-titles on set-option -g set-titles-string '#H:#S.#I.#P #W #T' ############################################################################ # Unbindings ############################################################################ #unbind [ # copy mode bound to escape key unbind j unbind C-b # unbind default leader key unbind '"' # unbind horizontal split unbind % # unbind vertical split ############################################################################ # Bindings ############################################################################ # reload tmux conf bind-key r source-file ~/.tmux.conf #bind Escape copy-mode # new split in current pane (horizontal / vertical) bind-key c split-window -v # split pane horizontally bind-key v split-window -h # split pane vertically # list panes bind-key Space list-panes # break-pane bind-key Enter break-pane # join-pane [-dhv] [-l size | -p percentage] [-s src-pane] # [-t:dst-window.dst-pane] (destination window (dot) destination pane # (alias: joinp) # #bind C-j command-prompt "joinp" #bind C-j command-prompt "join-pane" #bind-key j command-prompt "join-pane -s '%%'" #bind-key j command-prompt "joinp -t:0" bind-key Space command-prompt "joinp -t:%%" # %% = prompt for window.pane [-V|H] # vert|hor split #previous pane bind-key -n C-up prev bind-key -n C-left prev #next pane bind-key -n C-right next bind-key -n C-down next ############################################################################ # windows ############################################################################ set-window-option -g window-status-current-bg red bind C-j previous-window bind C-k next-window bind-key C-a last-window # C-a C-a for last active window bind A command-prompt "rename-window %%" # By default, all windows in a session are constrained to the size of the # smallest client connected to that session, # even if both clients are looking at different windows. # It seems that in this particular case, Screen has the better default # where a window is only constrained in size if a smaller client # is actively looking at it. setw -g aggressive-resize on ############################################################################ # panes ############################################################################ # Navigation --------------------------------------------------------------- # use the vim motion keys to move between panes bind-key h select-pane -L bind-key j select-pane -D bind-key k select-pane -U bind-key l select-pane -R # Resizing --------------------------------------------------------------- bind-key C-h resize-pane -L bind-key C-j resize-pane -D bind-key C-k resize-pane -U bind-key C-l resize-pane -R # use vim motion keys while in copy mode setw -g mode-keys vi ############################################################################ # layouts ############################################################################ bind o select-layout "active-only" bind M-- select-layout "even-vertical" bind M-| select-layout "even-horizontal" bind M-r rotate-window # focus on first window # select-window -t 0