Created
April 4, 2021 09:16
-
-
Save darko-mesaros/928936d2a9c93c384f027ae8ae256f05 to your computer and use it in GitHub Desktop.
My tmux configuration file
This file contains hidden or 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
# B A S I C S | |
## Replace c-B with c-A | |
unbind C-b | |
set -g prefix C-a | |
bind-key -r C-a send-prefix | |
# O P T I O N S | |
## Set 256 color mode | |
set-option -g default-terminal "screen-256color" | |
## Number windows starting at 1, renumber as windows are added / removed | |
set-option -g base-index 1 | |
set-option -g renumber-windows on | |
## Use vim keybindings in copy mode | |
setw -g mode-keys vi | |
## Do not rename windows | |
set-option -g allow-rename off | |
## For neovim | |
set-option -sg escape-time 0 | |
## Sets the refresh rate of the status bar | |
set -g status-interval 60 | |
## SSH Background color - TODO | |
#------------------------------------------------------------------------------# | |
# K E Y B I N D I N G S | |
## Easy reload | |
bind-key r source-file ~/.tmux.conf \; display-message "~/.tmux.conf reloaded" | |
## Go back to last window | |
bind-key C-a last-window | |
## More intuitive pane splitting key-bindings, open all in current path | |
bind-key - split-window -v -c '#{pane_current_path}' | |
bind-key \\ split-window -h -c '#{pane_current_path}' | |
bind c new-window -c '#{pane_current_path}' | |
## Kill windows | |
bind-key C-w kill-pane | |
## Easy resizing of panes with fine and coarse adjustment | |
bind -n S-Left resize-pane -L 2 | |
bind -n S-Right resize-pane -R 2 | |
bind -n S-Down resize-pane -D 1 | |
bind -n S-Up resize-pane -U 1 | |
bind -n C-Left resize-pane -L 10 | |
bind -n C-Right resize-pane -R 10 | |
bind -n C-Down resize-pane -D 5 | |
bind -n C-Up resize-pane -U 5 | |
## Seamless aviation using vim-tmux-navigator (github christoomey/vim-tmux-navigator) | |
is_vim='echo "#{pane_current_command}" | grep -iqE "(^|\/)g?(view|n?vim?)(diff)?$"' | |
bind -n C-h if-shell "$is_vim" "send-keys C-h" "select-pane -L" | |
bind -n C-j if-shell "$is_vim" "send-keys C-j" "select-pane -D" | |
bind -n C-k if-shell "$is_vim" "send-keys C-k" "select-pane -U" | |
bind -n C-l if-shell "$is_vim" "send-keys C-l" "select-pane -R" | |
bind -n C-\\ if-shell "$is_vim" "send-keys C-\\" "select-pane -l" | |
#------------------------------------------------------------------------------# | |
# C O L O R S | |
## COLORSCHEME: gruvbox dark | |
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 "#[fg=colour250, bg=colour241] #S #[fg=colour241, bg=colour237, nobold, noitalics, nounderscore]" | |
set-option -g status-right "#[fg=colour239, bg=colour237, nobold, nounderscore, noitalics]#[fg=colour246,bg=colour239] %Y-%m-%d #[fg=colour230,bg=colour244] %H:%M #[fg=colour248, bg=colour239, nobold, noitalics, nounderscore]#[fg=colour237, bg=colour255] darko@#h " | |
set-window-option -g window-status-current-format "#[fg=colour237, bg=colour214, nobold, noitalics, nounderscore]#[fg=colour239, bg=colour221] #I #[fg=colour239, bg=colour214, bold] #W #[fg=colour214, bg=colour237, nobold, noitalics, nounderscore]" | |
set-window-option -g window-status-format "#[fg=colour237,bg=colour239,noitalics]#[fg=colour223,bg=colour239] #I #[fg=colour223, bg=colour239] #W #[fg=colour239, bg=colour237, noitalics]" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment