# Needed for some graphics to work properly # set -g default-terminal "tmux-256color" # set -as terminal-features ',xterm-kitty:RGB' # So keystrokes are forwarded correctly # set -g xterm-keys on # set -s extended-keys on # set -as terminal-features 'xterm*:extkeys' # THIS IS WHAT MAKES EXTENDED MODIFIERS WORK IN TMUX # set -as terminal-features '*ghostty*:extkeys' # don't let programs rename window set -g allow-rename off # don't wait after escape sequences set -s escape-time 1 # Fix some graphics issues set -gq allow-passthrough on set -g visual-activity off # max lines in window history set -g history-limit 10000 # bind to reload config unbind r bind r source-file ~/.config/tmux/tmux.conf unbind -n C-Enter # unbind -n C-m # bind C-t to prefix unbind C-t unbind C-b set -g prefix C-t # cringe: will disable later set -g mouse on # tmux renames window automatically setw -g automatic-rename on # start indexing at 1 (based) set -g base-index 1 set -g pane-base-index 1 set-window-option -g pane-base-index 1 # reset window numbers if layout changes set-option -g renumber-windows on # ignore terminal bell set -g bell-action none ### PLUGINS # plugin manager set -g @plugin 'tmux-plugins/tpm' # sensible defaults set -g @plugin 'tmux-plugins/tmux-sensible' # better yank set -g @plugin 'tmux-plugins/tmux-yank' # pretty minimal status set -g @plugin 'niksingh710/minimal-tmux-status' # Theme Settings set -g @minimal-tmux-use-arrow false set -g @minimal-tmux-status "top" set -g @minimal-tmux-right true set -g @minimal-tmux-justify "centre" set -g @minimal-tmux-bg "#933737" set -g @minimal-tmux-fg "#000000" set -g @plugin 'tmux-plugins/tmux-resurrect' set -g @resurrect-strategy-nvim 'session' set -g @plugin 'tmux-plugins/tmux-continuum' set -g @continuum-boot 'on' # Awesome Tmux # note: prefix + Tab to trigger set -g @plugin 'laktak/extrakto' # prefix + ?: keybindings help set -g @plugin 'lost-melody/tmux-command-palette' # easymotion set -g @plugin 'ddzero2c/tmux-easymotion' set -g @easymotion-key 's' # prefix + T set -g @plugin '27medkamal/tmux-session-wizard' # prefix + g set -g @plugin 'sturob/tmux-teleport' # Prefix f to open main fzf # Prefix C-w to open window switcher TMUX_FZF_LAUNCH_KEY="C-f" set -g @plugin 'sainnhe/tmux-fzf' bind-key C-w run-shell -b "/home/fic/.config/tmux/plugins/tmux-fzf/scripts/window.sh switch" # TODO: # https://github.com/whame/tmux-modal # https://github.com/gcla/tmux-wormhole ### NAVIGATION KEYBINDINGS # ### Note: m:n:e:i are h:j:k:l on colemak-dh # focus panes bind -n M-m select-pane -L bind -n M-n select-pane -D bind -n M-e select-pane -U bind -n M-i select-pane -R # If we pressed prefix it's intentional; no need to confirm bind x kill-window # This will kill the pane # ONLY asks for confirmation if it's the last # pane in the window bind -n M-x run-shell "~/.config/tmux/confirm_kill_pane.sh; true" # Fullscreen pane bind -n M-f resize-pane -Z # Swap the split bindings to be consistent with nvim # v -> split right # s -> split down bind -n M-v split-window -h -c "#{pane_current_path}" bind -n M-s split-window -v -c "#{pane_current_path}" # Resize pane bind Left resize-pane -L 5 bind Right resize-pane -R 5 bind Up resize-pane -U 5 bind Down resize-pane -D 5 # Focus windows bind -n M-u next-window bind -n M-l previous-window # Swap window left/right (keeping focus) bind -n M-U swap-window -t + \; next-window bind -n M-L swap-window -t - \; previous-window # Swap active pane with direction bind C-j swap-pane -t left bind C-l swap-pane -D bind C-u swap-pane -U bind C-y swap-pane -t right # m to mark a pane, M to "swap" it with current pane # Note: this does not "unmark" the marked pane! bind M swap-pane # Unbind these resizing defaults # as they conflict with Neovim unbind -n M-Left unbind -n M-Right unbind -n M-Up unbind -n M-Down # Toggle status bar bind-key b set-option status # Enable vi keys in copy mode set-window-option -g mode-keys vi # Copy mode # TODO: binding to cancel copy mode without selecting bind v copy-mode 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 # Do not preserve the current working directory for new windows bind c new-window -c "" # TESTING # DO NOT bind -n M-T display-message "Testing" bind -n M-T display-message "test?" # WARN: This line must come last! run '/usr/share/tmux-plugin-manager/tpm'