diff --git a/tmux/.tmux.conf b/tmux/.tmux.conf index b907ce5..c59c919 100644 --- a/tmux/.tmux.conf +++ b/tmux/.tmux.conf @@ -1,4 +1,5 @@ set -g default-terminal "xterm-256color" +set-option -sa terminal-overrides ",xterm*:Tc" ## Vim user config @@ -7,6 +8,12 @@ unbind C-b set -g prefix C-space bind C-space send-prefix +# Start windows and panes at 1, not 0 +set -g base-index 1 +set -g pane-base-index 1 +set-window-option -g pane-base-index 1 +set-option -g renumber-windows on + # C-space C-space will swap to last used window bind-key C-space last-window @@ -32,169 +39,32 @@ set -g history-limit 10000 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 v send-keys -X begin-selection +bind-key -T copy-mode-vi C-v send-keys -X rectangle-toggle +bind-key -T copy-mode-vi y send-keys -X copy-selection-and-cancel + 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 - -# } - -set-option -g focus-events on - ## 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' +set -g @plugin 'christoomey/vim-tmux-navigator' +set -g @plugin 'tmux-plugins/tmux-yank' +set -g @plugin 'egel/tmux-gruvbox' +set -g @tmux-gruvbox 'dark' # or 'light' # Keep this line at the very bottom of tmux.conf. run-shell '~/.tmux/plugins/tpm/tpm'