set -g default-terminal "tmux-256color" set -ga terminal-overrides ",*256col*:Tc" set -ga terminal-overrides ",xterm-256color:Tc" set -g history-limit 50000 set -g focus-events on set -s escape-time 0 set -g display-time 2000 set -g set-clipboard on set -g mouse on set -s extended-keys on # WINDOW & PANE MANAGEMENT set -g base-index 1 setw -g pane-base-index 1 set -g renumber-windows on set -g detach-on-destroy off setw -g aggressive-resize on set -g main-pane-width 110 unbind C-b set -g prefix M-a bind M-a send-prefix unbind C-h unbind C-j unbind C-k unbind C-l # PANE NAVIGATION bind -n M-h select-pane -L bind -n M-j select-pane -D bind -n M-k select-pane -U bind -n M-l select-pane -R # WINDOW SELECTION bind -n M-1 select-window -t 1 bind -n M-2 select-window -t 2 bind -n M-3 select-window -t 3 bind -n M-4 select-window -t 4 bind -n M-5 select-window -t 5 bind -n M-6 select-window -t 6 bind 1 select-window -t 1 bind 2 select-window -t 2 bind 3 select-window -t 3 bind 4 select-window -t 4 bind 5 select-window -t 5 bind 6 select-window -t 6 # SPLITS & NEW WINDOW bind -n M-$ split-window -h -c "#{pane_current_path}" bind -n M-% split-window -v -c "#{pane_current_path}" bind -n M-c new-window -c "#{pane_current_path}" bind -n M-z resize-pane -Z # Directory-specific plits (manual) bind h split-window -v -c "#{pane_current_path}" bind v split-window -h -c "#{pane_current_path}" bind c new-window -c "#{pane_current_path}" # RESIZING bind -r < resize-pane -L 10 bind -r > resize-pane -R 10 bind -r + resize-pane -D 10 bind -r - resize-pane -U 10 # WINDOW MOVEMENT bind -n F11 previous-window bind -n F12 next-window bind -n C-S-Left swap-window -d -t -1 bind -n C-S-Right swap-window -d -t +1 # COPY MODE (VI STYLE) set -g mode-keys vi set -g status-keys vi bind -T copy-mode-vi v send -X begin-selection bind -T copy-mode-vi C-v send -X begin-selection \; send -X rectangle-toggle bind -T copy-mode-vi y send -X copy-pipe-and-cancel "xsel --clipboard" bind -T copy-mode-vi Enter send -X copy-pipe-and-cancel "xsel --clipboard" # APPEARANCE & STATUS BAR set -g status on set -g status-interval 2 set -g status-position top set -g status-justify centre set -g status-style bg=#000000,fg=#8B7355 set -g status-left '#[fg=#D48B30,bold]#S ' set -g status-right '#[fg=#8B7355]%d.%m. #[fg=#D48B30]%H:%M' set -g status-left-length 20 set -g status-right-length 20 set -g window-status-format "#[fg=#5A4A38]#I:#W" set -g window-status-current-format "#[fg=#F0A030,bold](#I:#W)" set -g window-status-separator " " set -g pane-border-style fg=#241A10 set -g pane-active-border-style fg=#3D2B1A set -g mode-style bg=#3D2B1A,fg=#C4A882 set -g message-style bg=#C84820,fg=#0D1117,bold set -g message-command-style bg=#1F1610,fg=#D48B30 # SESSION & POPUPS bind m choose-tree bind k choose-session bind N new-session bind S command-prompt 'rename-session %%' bind B command-prompt -p "New session name:" \ "new-session -d -s '%%'; move-window -t '%%:'; switch-client -t '%%'" set -g popup-border-lines rounded set -g popup-border-style fg=#3D2B1A set -g popup-style bg=#0D1117 bind M-j display-popup -h 40% -w 40% -E "tmux-session-switcher" bind M-o display-popup -E "tmux-zoxide-window" bind M-t display-popup -E "tmux-bro" bind M-f display-popup -h 70% -w 70% -E "tmux-file-picker" bind M-r display-popup -h 70% -w 70% -E "tmux-file-picker -d" bind M-g display-popup -h 70% -w 70% -E "tmux-file-picker -g" bind M-d display-popup -h 70% -w 70% -E "tmux-file-picker --zoxide --dir-only" bind M-z display-popup -h 70% -w 70% -E "tmux-file-picker --zoxide" bind M-p display-popup -h 80% -w 80% -E "tmux-snaglord" bind M-s set-window-option synchronize-panes set -g @continuum-restore 'on' set -g @continuum-save-interval '10' set -g @resurrect-capture-pane-contents 'on' # reloading tmux unbind r bind r source-file ~/.config/tmux/tmux.conf \; display-message "Config Reloaded!" # tmux plugins set -g @plugin 'tmux-plugins/tpm' set -g @plugin 'christoomey/vim-tmux-navigator' set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @plugin 'tmux-plugins/tmux-continuum' set -g @plugin 'tmux-plugins/tmux-logging' run '~/.tmux/plugins/tpm/tpm'