# ~/.config/tmux/tmux.conf, or .dotfiles/config/tmux/tmux.conf # # Contains configuration from the follwing sources: # - https://tmuxguide.readthedocs.io/en/latest/tmux/tmux.html # - https://github.com/dreamsofcode-io/tmux/blob/main/tmux.conf ## Install plugins, starting with plugin manager set -g @tpm_plugins ' \ tmux-plugins/tpm \ b0o/tmux-autoreload \ catppuccin/tmux \ ChanderG/tmux-notify \ christoomey/vim-tmux-navigator \ yardnsm/tmux-1password \ jaclu/tmux-menus \ sainnhe/tmux-fzf \ MunifTanjim/tmux-mode-indicator \ MunifTanjim/tmux-suspend \ tmux-plugins/tmux-continuum \ tmux-plugins/tmux-resurrect \ tmux-plugins/tmux-sensible \ tmux-plugins/tmux-sessionist \ tmux-plugins/tmux-yank \ ' # Set plugins install dir set-environment -g TMUX_PLUGIN_MANAGER_PATH '~/.config/tmux/plugins/' set-option -sa terminal-overrides ",xterm*:Tc" # Mouse support set -g mouse on # Make delay shorter set -sg escape-time 0 # Set to Control + Space unbind C-b set -g prefix C-Space bind C-Space send-prefix # Vim style pane selection bind h select-pane -L bind j select-pane -D bind k select-pane -U bind l select-pane -R # 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 # Use Alt-arrow keys without prefix key to switch panes bind -n M-Left select-pane -L bind -n M-Right select-pane -R bind -n M-Up select-pane -U bind -n M-Down select-pane -D # Shift arrow to switch windows bind -n S-Left previous-window bind -n S-Right next-window # Shift Alt vim keys to switch windows bind -n M-H previous-window bind -n M-L next-window # Reload tmux config with + r bind r source-file ~/.dotfiles/config/tmux/tmux.conf \; display "tmux cfg reloaded!" # Open a new window with + N bind N new-window # Plugins related configurations ## https://github.com/jaclu/tmux-menus set -g @menus_trigger 'm' ## https://github.com/jaclu/tmux-1password set -g @1password-key 'x' ## https://github.com/catppuccin/tmux set -g @catppuccin_flavour 'mocha' # latte/frappe/macchiato/mocha set -g @catppuccin_window_tabs_enabled on # or off to disable window_tabs ## https://github.com/MunifTanjim/tmux-mode-indicator set -g status-right '%Y-%m-%d %H:%M #{tmux_mode_indicator}' set -g @mode_indicator_prefix_prompt ' WAIT ' set -g @mode_indicator_copy_prompt ' COPY ' set -g @mode_indicator_sync_prompt ' SYNC ' set -g @mode_indicator_empty_prompt ' TMUX ' set -g @mode_indicator_prefix_mode_style 'bg=blue,fg=black' set -g @mode_indicator_copy_mode_style 'bg=yellow,fg=black' set -g @mode_indicator_sync_mode_style 'bg=red,fg=black' set -g @mode_indicator_empty_mode_style 'bg=cyan,fg=black' ## https://github.com/MunifTanjim/tmux-suspend set -g @suspend_key 'F12' set -g @suspend_suspended_options " \ @mode_indicator_custom_prompt:: ---- , \ @mode_indicator_custom_mode_style::bg=brightblack\\,fg=black, \ " ## https://github.com/tmux-plugins/tmux-continuum set -g @continuum-restore 'on' set -g @continuum-boot 'on' set -g @continuum-boot-options 'iterm' ## https://github.com/tmux-plugins/tmux-resurrect set -g @resurrect-strategy-nvim 'session' ## https://github.com/b0o/tmux-autoreload set-option -g @tmux-autoreload-configs '~/.dotfiles/config/tmux/tmux.conf' ## https://github.com/sainnhe/tmux-fzf TMUX_FZF_LAUNCH_KEY="l" ## https://github.com/ChanderG/tmux-notify set -g @tnotify-verbose 'on' # set vi-mode set-window-option -g mode-keys vi # keybindings 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 '"' split-window -v -c "#{pane_current_path}" bind '!' split-window -h -c "#{pane_current_path}" # synchronize all panes in a window bind y setw synchronize-panes #### copy mode : vim #### # copy mode using 'Esc' unbind [ bind Escape copy-mode # start selection with 'space' and copy using 'y' #bind -t vi-copy 'y' copy-selection # paste using 'p' unbind p bind p paste-buffer # Finally run the tmux plugin manager run '~/.config/tmux/plugins/tpm/tpm'