Last active
November 29, 2023 15:08
-
-
Save AmirMuha/343e68d4173e1432f5ba8f7ee15a2698 to your computer and use it in GitHub Desktop.
My beloved tmux.conf
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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' | |
set -g @plugin 'nhdaly/tmux-better-mouse-mode' | |
set -g @plugin 'jaclu/tmux-mouse-swipe' | |
set -g @plugin 'tmux-plugins/tmux-cpu' | |
set-option -g @plugin 'b0o/tmux-autoreload' | |
set -g @plugin 'dracula/tmux' | |
set -g @dracula-plugins "git cpu-usage ram-usage network" | |
set -g @plugin 'tmux-plugins/tmux-yank' | |
set -g @plugin 'egel/tmux-gruvbox' | |
set -g @tmux-gruvbox 'dark' # or 'light' | |
# Other examples: | |
# set -g @plugin 'github_username/plugin_name' | |
# set -g @plugin 'github_username/plugin_name#branch' | |
# set -g @plugin 'git@github.com:user/plugin' | |
# set -g @plugin 'git@bitbucket.com:user/plugin' | |
# loud or quiet? | |
set -g visual-activity off | |
set -g visual-bell off | |
set -g visual-silence off | |
setw -g monitor-activity off | |
set -g bell-action none | |
# modes | |
set-option -g mouse on | |
setw -g clock-mode-colour colour5 | |
setw -g mode-style 'fg=colour1 bg=colour18 bold' | |
# panes | |
set -g pane-border-style 'fg=colour19 bg=colour0' | |
set -g pane-active-border-style 'bg=colour0 fg=colour9' | |
# statusbar | |
set -g status-position bottom | |
set -g status-justify left | |
set -g status-style 'bg=colour18 fg=colour137 dim' | |
set -g status-left '' | |
set -g status-right '#[fg=colour233,bg=colour19] %d/%m #[fg=colour233,bg=colour8] %H:%M:%S ' | |
set -g status-right-length 50 | |
set -g status-left-length 20 | |
setw -g window-status-current-style 'fg=colour1 bg=colour19 bold' | |
setw -g window-status-current-format ' #I#[fg=colour249]:#[fg=colour255]#W#[fg=colour249]#F ' | |
setw -g window-status-style 'fg=colour9 bg=colour18' | |
setw -g window-status-format ' #I#[fg=colour237]:#[fg=colour250]#W#[fg=colour244]#F ' | |
setw -g window-status-bell-style 'fg=colour255 bg=colour1 bold' | |
# 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' | |
tmux_version='$(tmux -V | sed -En "s/^tmux ([0-9]+(.[0-9]+)?).*/\1/p")' | |
if-shell -b '[ "$(echo "$tmux_version < 3.0" | bc)" = 1 ]' \ | |
"bind-key -n 'C-\\' if-shell \"$is_vim\" 'send-keys C-\\' 'select-pane -l'" | |
if-shell -b '[ "$(echo "$tmux_version >= 3.0" | bc)" = 1 ]' \ | |
"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 | |
# pane resizing | |
bind -r H resize-pane -L 2 | |
bind -r J resize-pane -D 2 | |
bind -r K resize-pane -U 2 | |
bind -r L resize-pane -R 2 | |
# messages | |
set -g message-style 'fg=colour232 bg=colour16 bold' | |
# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) | |
run '~/.tmux/plugins/tpm/tpm' | |
## COLORSCHEME: gruvbox dark (medium) | |
set-option -g status "on" | |
# default statusbar color | |
set-option -g status-style bg=colour237,fg=colour223 # bg=bg1, fg=fg1 | |
# default window title colors | |
set-window-option -g window-status-style bg=colour214,fg=colour237 # bg=yellow, fg=bg1 | |
# default window with an activity alert | |
set-window-option -g window-status-activity-style bg=colour237,fg=colour248 # bg=bg1, fg=fg3 | |
# active window title colors | |
set-window-option -g window-status-current-style bg=red,fg=colour237 # fg=bg1 | |
# pane border | |
set-option -g pane-active-border-style fg=colour250 #fg2 | |
set-option -g pane-border-style fg=colour237 #bg1 | |
# message infos | |
set-option -g message-style bg=colour239,fg=colour223 # bg=bg2, fg=fg1 | |
# writing commands inactive | |
set-option -g message-command-style bg=colour239,fg=colour223 # bg=fg3, fg=bg1 | |
# pane number display | |
set-option -g display-panes-active-colour colour250 #fg2 | |
set-option -g display-panes-colour colour237 #bg1 | |
# clock | |
set-window-option -g clock-mode-colour colour109 #blue | |
# bell | |
set-window-option -g window-status-bell-style bg=colour167,fg=colour235 # bg=red, fg=bg | |
## Theme settings mixed with colors (unfortunately, but there is no cleaner way) | |
set-option -g status-justify "left" | |
set-option -g status-left-style none | |
set-option -g status-left-length "80" | |
set-option -g status-right-style none | |
set-option -g status-right-length "80" | |
set-window-option -g window-status-separator "" | |
set-option -g status-left "#[bg=colour241,fg=colour248] #S #[bg=colour237,fg=colour241,nobold,noitalics,nounderscore]" | |
set-option -g status-right "#[bg=colour237,fg=colour239 nobold, nounderscore, noitalics]#[bg=colour239,fg=colour246] %Y-%m-%d %H:%M #[bg=colour239,fg=colour248,nobold,noitalics,nounderscore]#[bg=colour248,fg=colour237] #h " | |
set-window-option -g window-status-current-format "#[bg=colour214,fg=colour237,nobold,noitalics,nounderscore]#[bg=colour214,fg=colour239] #I #[bg=colour214,fg=colour239,bold] #W#{?window_zoomed_flag,*Z,} #[bg=colour237,fg=colour214,nobold,noitalics,nounderscore]" | |
set-window-option -g window-status-format "#[bg=colour239,fg=colour237,noitalics]#[bg=colour239,fg=colour223] #I #[bg=colour239,fg=colour223] #W #[bg=colour237,fg=colour239,noitalics]" | |
# vim: set ft=tmux tw=0 nowrap: |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment