set -g default-terminal "screen-256color" ## Vim user config #Prefix is Ctrl-a unbind C-b set -g prefix C-space bind C-space send-prefix # C-space C-space will swap to last used window bind-key C-space last-window #set -sg escape-time 1 #set -g base-index 1 #setw -g pane-base-index 1 #Mouse works as expected set -g mouse on #setw -g mode-mouse on #set -g mouse-select-pane on #set -g mouse-resize-pane on #set -g mouse-select-window on set -g monitor-activity on set -g visual-activity on setw -g mode-keys vi set -g history-limit 10000 # y and p as in vim bind Escape copy-mode unbind p bind p paste-buffer #bind -t vi-copy 'v' begin-selection #bind -t vi-copy 'y' copy-selection #bind -t vi-copy 'Space' halfpage-down #bind -t vi-copy 'Bspace' halfpage-up bind-key -T copy-mode-vi 'v' send -X begin-selection bind-key -T copy-mode-vi 'y' send -X copy-selection bind-key -T copy-mode-vi 'Space' send -X halfpage-down bind-key -T copy-mode-vi 'Bspace' send -X halfpage-up # Remap previous window bind b previous-window # extra commands for interacting with the ICCCM clipboard bind C-c run "tmux save-buffer - | xclip -i -sel clipboard" bind C-v run "tmux set-buffer \"$(xclip -o -sel clipboard)\"; tmux paste-buffer" # easy-to-remember split pane commands bind | split-window -h bind - split-window -v unbind '"' unbind % # # moving between panes with vim movement keys # bind h select-pane -L # bind j select-pane -D # bind k select-pane -U # bind l select-pane -R # Smart pane switching with awareness of Vim splits. # See: https://github.com/christoomey/vim-tmux-navigator 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 -T copy-mode-vi C-h select-pane -L bind-key -T copy-mode-vi C-j select-pane -D bind-key -T copy-mode-vi C-k select-pane -U bind-key -T copy-mode-vi C-l select-pane -R bind-key -T copy-mode-vi C-\ select-pane -l # moving between windows with vim movement keys bind -r C-h select-window -t :- bind -r C-l select-window -t :+ # resize panes with vim movement keys bind -r H resize-pane -L 5 bind -r J resize-pane -D 5 bind -r K resize-pane -U 5 bind -r L resize-pane -R 5 ###################### ### DESIGN CHANGES ### ###################### # panes set -g pane-border-fg black set -g pane-active-border-fg brightred ## Status bar design # status line # set -g status-utf8 on set -g status-justify left set -g status-bg default set -g status-fg colour12 set -g status-interval 2 # messaging set -g message-fg black set -g message-bg yellow set -g message-command-fg blue set -g message-command-bg black #window mode setw -g mode-bg colour6 setw -g mode-fg colour0 # window status setw -g window-status-format " #F#I:#W#F " setw -g window-status-current-format " #F#I:#W#F " setw -g window-status-format "#[fg=magenta]#[bg=black] #I #[bg=cyan]#[fg=colour8] #W " setw -g window-status-current-format "#[bg=brightmagenta]#[fg=colour8] #I #[fg=colour8]#[bg=colour14] #W " setw -g window-status-current-bg colour0 setw -g window-status-current-fg colour11 setw -g window-status-current-attr dim setw -g window-status-bg green setw -g window-status-fg black setw -g window-status-attr reverse # Info on left (I don't have a session display for now) set -g status-left '' # loud or quiet? set-option -g visual-activity off set-option -g visual-bell off set-option -g visual-silence off set-window-option -g monitor-activity off set-option -g bell-action none set -g default-terminal "screen-256color" # The modes { setw -g clock-mode-colour colour135 setw -g mode-attr bold setw -g mode-fg colour196 setw -g mode-bg colour238 # } # The panes { set -g pane-border-bg colour235 set -g pane-border-fg colour238 set -g pane-active-border-bg colour236 set -g pane-active-border-fg colour51 # } # The statusbar { set -g status-position bottom set -g status-bg colour234 set -g status-fg colour137 set -g status-attr dim set -g status-left '#[fg=colour81,bg=colour241,bold] #S ' set -g status-right '#[fg=colour233,bg=colour241,bold] %d/%m #[fg=colour233,bg=colour245,bold] %H:%M:%S ' set -g status-right-length 50 set -g status-left-length 20 setw -g window-status-current-fg colour81 setw -g window-status-current-bg colour238 setw -g window-status-current-attr bold setw -g window-status-current-format ' #I#[fg=colour250]:#[fg=colour255]#W#[fg=colour50]#F ' setw -g window-status-fg colour138 setw -g window-status-bg colour235 setw -g window-status-attr none setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F ' setw -g window-status-bell-attr bold setw -g window-status-bell-fg colour255 setw -g window-status-bell-bg colour1 # } # The messages { set -g message-attr bold set -g message-fg colour232 set -g message-bg colour166 # } ## Plugins # Supports `github_username/repo` or full git repo URLs set -g @tpm_plugins 'tmux-plugins/tpm' set -g @tpm_plugins 'tmux-plugins/tmux-sensible' # tmux-plugins/tmux-resurrect \ # tmux-plugins/tmux-continuum \ ## tmux-continuum: automatic restore #set -g @continuum-restore 'on' # Keep this line at the very bottom of tmux.conf. run-shell '~/.tmux/plugins/tpm/tpm'