# ^s as prefix unbind C-b set -g prefix C-s bind-key s send-prefix # statusbar on bottom set-option -g status-position top set-option -g mouse on # honestly not sure set -g escape-time 10 setw -g monitor-activity on bind-key W resize-pane -x 100 # splitting bind-key v split-window -h bind-key b split-window set -g default-terminal "tmux-256color" # iterating unbind r bind r source-file ~/.tmux.conf # show tmux status bar by default (prefix H toggles) set -g status on bind-key H set status bind-key j switch-client -p bind-key h switch-client -p bind-key k switch-client -n bind-key l switch-client -n # message colors set -g message-bg colour0 set -g message-fg colour7 # status bar configuration # set -g status-utf8 on set -g status-justify left # status bar colors set -g status-bg colour0 set -g status-fg colour8 # don't show time or date or anything - we have a bar for that set -g status-left '' set -g status-right '' set -g status-right-length 20 set -g status-interval 1 # set status-interval 1 set -g status-left '#(#{DOTFILES_PATH}/scripts/bin/tmux-session-list #S)#[fg=colour18]#[bg=default]|#[fg=colour7] #W' set -g status-left-length 200 setw -g window-status-current-fg colour7 setw -g window-status-current-bg colour2 # setw -g window-status-current-attr bold setw -g window-status-current-format '' # vim copying setw -g mode-keys vi # 1-based indexing for keystroke simplicity set -g base-index 1 set -g pane-base-index 1 # custom predefined layouts bind M-l source-file ~/.tmux/layouts/dev.tmux set -g pane-border-fg colour18 set -g pane-active-border-fg blue set -g pane-active-border-bg default bind-key s run "tmux new-window 'bash -ci tmuxswitcher'" # present a menu of urls to open from the visible pane bind-key u capture-pane \;\ save-buffer /tmp/tmux-buffer \;\ split-window -l 10 "urlview /tmp/tmux-buffer" # mimic pane switching in and out of vim is_vim="ps -o state= -o comm= -t '#{pane_tty}' \ | grep -iqE '^[^TXZ ]+ +(\\S+\\/)?g?(view|n?vim?x?)(diff)?$'" bind-key -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L" bind-key -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D" bind-key -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" bind-key -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" bind-key -n C-\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l" bind-key -Tcopy-mode-vi 'C-h' send -X "cancel select-pane -L" bind-key -Tcopy-mode-vi 'y' send -X copy-selection # list of plugins set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'tmux-plugins/tmux-sensible' set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @plugin 'tmux-plugins/tmux-continuum' # prefix+[ for select mode # v for visual mode # yank to clipboard with y # paste with prefix+] set -g @plugin 'tmux-plugins/tmux-yank' set -g @plugin 'tmux-plugins/tmux-copycat' set -g @plugin 'tmux-plugins/tmux-sessionist' set -g @plugin 'christoomey/vim-tmux-navigator' # plugin options # enable continuum set -g @continuum-restore 'off' # let continuum startup on boot set -g @continuum-boot 'on' # initialize tmux plugin manager run '~/.tmux/plugins/tpm/tpm' unbind-key C-p