# 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 # 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 # 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' ### Session management -- TODO: configure later # set -g @plugin 'tmux-plugins/tmux-resurrect' # set -g @plugin 'tmux-plugins/tmux-continuum' ### NAVIGATION KEYBINDINGS # 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 bind v copy-mode bind u next-window bind l previous-window bind -n M-j swap-pane -t left bind -n M-l swap-pane -D bind -n M-u swap-pane -U bind -n M-y swap-pane -t right # m to mark a pane, M to "swap" it with current pane bind M swap-pane unbind -n M-Left unbind -n M-Right unbind -n M-Up unbind -n M-Down # 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" bind-key t set-option status set-window-option -g mode-keys vi 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-key b set-option status # Do not preserve the current working directory for new windows bind c new-window -c "" run '/usr/share/tmux-plugin-manager/tpm'