# tweak colors used by tmux set -g status-style bg=cyan,fg=black set -g window-status-current-style bg=black,fg=white set -g mode-style bg=cyan,fg=black # replace default prefix key set -g prefix C-Space unbind C-b bind C-Space send-prefix # use vi-style keybindings # this also makes hitting Enter exit copy-mode, which is a godsend setw -g mode-keys vi # need this for ctrl+arrows, etc. set -g xterm-keys on # remove delay on escape key set -sg escape-time 0 # set the terminal title to the current window's set -g set-titles on set -g set-titles-string '#{host}: #{pane_title}' # don't create absurdly long statuses with Windows-style paths setw -g window-status-format "#I:#{s/.*\\\\|\.exe//:pane_current_command}" setw -g window-status-current-format "#I:#{s/.*\\\\|\.exe//:pane_current_command}" # don't wrap around with searches setw -g wrap-search off # set the default terminal to tmux instead of pretending to be screen. # NOTE: netbsd-curses requires a terminfo.cdb to be built with tmux support. # for my own convenience: # curl https://eaguru.guru/t/terminfo.cdb -o /usr/share/terminfo.cdb set -g default-terminal "tmux-256color" # set right-hand status line text, default: "#{=21:pane_title}" %H:%M %d-%b-%y set -g status-right "#{=21:host} %Y/%m/%d %R" # increase scrollback lines from 2000 set -g history-limit 10000 # increase message time from 750ms set -g display-time 2500 # remember commands entered in the prompt set -g history-file ~/.tmux_history set -g history-limit 1000 # jump into copy-mode for Shift+PgUp, scroll half a page instead of a full page # switching modes is not ideal but it's the only way to scroll within tmux bind -n S-PgUp copy-mode \; send-keys -X halfpage-up bind -n S-Home copy-mode \; send-keys -X history-top # bind Shift+PgUp/PgDn/Home/End to Do The Right Thing™ bind -T copy-mode-vi S-PgUp send-keys -X halfpage-up bind -T copy-mode-vi S-PgDn send-keys -X halfpage-down bind -T copy-mode-vi S-Home send-keys -X history-top bind -T copy-mode-vi S-End send-keys -X history-bottom \; send-keys -X cancel # Ctrl+PgUp/PgDn to navigate windows (like web browsers) bind -n C-PgUp previous-window bind -n C-PgDn next-window # Ctrl+Shift+PgUp/PgDn to reorder windows (like web browsers) bind -n C-S-PgUp swap-window -d -t -1 bind -n C-S-PgDn swap-window -d -t +1 # Shift+Arrows to switch panes bind -n S-Left select-pane -L bind -n S-Right select-pane -R bind -n S-Up select-pane -U bind -n S-Down select-pane -D # Ctrl+Arrows to create panes #bind -n C-Down split-window -v #bind -n C-Up split-window -v -b #bind -n C-Right split-window -h #bind -n C-Left split-window -h -b # convenient binds # overrides refresh-clients #bind r source-file ~/.tmux.conf # overrides choose-tree -Zs #bind s split-window -v # doesn't override anything bind v split-window -h # doesn't override anything (assuming prefix key was changed) bind b split-window -v # overrides confirm-before -p "kill-pane #P? (y/n) " kill-pane bind x kill-pane # doesn't override anything? bind e detach-client -E 'exit 1' # doesn't override anything? bind a new-window 'exec vim'