diff --git a/.config/tmux/tmux.conf b/.config/tmux/tmux.conf index faea8008..b659213d 100644 --- a/.config/tmux/tmux.conf +++ b/.config/tmux/tmux.conf @@ -2,19 +2,19 @@ # 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 -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' +set -as terminal-features '*ghostty*:extkeys' -# don't let programs rename window +# # don't let programs rename window set -g allow-rename off -# don't wait after escape sequences +# # don't wait after escape sequences set -s escape-time 1 - -# Fix some graphics issues -set -gq allow-passthrough on +# +# # Fix some graphics issues +# set -gq allow-passthrough on set -g visual-activity off # max lines in window history @@ -50,46 +50,46 @@ set -g bell-action none ### PLUGINS # plugin manager -set -g @plugin 'tmux-plugins/tpm' +# set -g @plugin 'tmux-plugins/tpm' # sensible defaults -set -g @plugin 'tmux-plugins/tmux-sensible' +# set -g @plugin 'tmux-plugins/tmux-sensible' # better yank -set -g @plugin 'tmux-plugins/tmux-yank' +# set -g @plugin 'tmux-plugins/tmux-yank' # pretty minimal status -set -g @plugin 'niksingh710/minimal-tmux-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 @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' -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" +# # 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 @@ -172,8 +172,8 @@ bind c new-window -c "" # TESTING # DO NOT bind -n M-T display-message "Testing" -bind -n M-T display-message "test?" +# bind -n M-T display-message "test?" # WARN: This line must come last! -run '/usr/share/tmux-plugin-manager/tpm' +# run '/usr/share/tmux-plugin-manager/tpm' diff --git a/.config/tmux/tmux.conf.bak b/.config/tmux/tmux.conf.bak new file mode 100644 index 00000000..ba57c8a6 --- /dev/null +++ b/.config/tmux/tmux.conf.bak @@ -0,0 +1,179 @@ +# 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' diff --git a/.zshrc b/.zshrc index 5bd3ed3b..6638cc65 100644 --- a/.zshrc +++ b/.zshrc @@ -43,6 +43,7 @@ alias n='nvim' alias lg=lazygit alias ylg="yadm enter lazygit" # tmux aliases +alias tmuxclean="tmux -L test -f /dev/null" alias tm="tmux" alias ta="tmux attach-session" alias tat="tmux attach-session -t"