From dd739c9f47b11950d0fde6a19c5c36a499be5bd4 Mon Sep 17 00:00:00 2001 From: sommerfeld Date: Wed, 13 May 2026 13:43:12 +0100 Subject: feat(zellij): relocate mode-entry keys to Alt+Shift+* to stop shadowing shell/nvim Zellij's default Ctrl+* mode-entry keys (Ctrl+p/t/r/s/o/g/b/q) were intercepted before reaching the inner shell/editor, shadowing zsh fzf bindings (Ctrl+t), history navigation (Ctrl+p/n), nvim jumps (Ctrl+o), save (Ctrl+s), etc. Unbind all conflicting Ctrl+* entries and relocate mode-entry to Alt+Shift+: Alt+Shift+P Pane Alt+Shift+T Tab Alt+Shift+R Resize Alt+Shift+S Scroll Alt+Shift+O Session Alt+Shift+Z Locked (Z avoids Treewalker Alt+Shift+h/j/k/l swap) Alt+Shift+Q Quit TMUX-compat mode dropped. Only Ctrl+h/j/k/l remain bound in zellij (for vim-zellij-navigator); every other Ctrl+* now passes through. Requires fresh zellij session (kill-all-sessions -y) to take effect. --- dot_config/zellij/config.kdl | 14 ++++++++++++++ 1 file changed, 14 insertions(+) (limited to 'dot_config') diff --git a/dot_config/zellij/config.kdl b/dot_config/zellij/config.kdl index 5f7e193..569a52e 100644 --- a/dot_config/zellij/config.kdl +++ b/dot_config/zellij/config.kdl @@ -23,6 +23,20 @@ pane_frames false // Custom keybindings (merged with defaults) keybinds { shared_except "locked" { + // Free up Ctrl+* keys so they pass through to zsh / nvim. + // Mode-entry relocated to Alt+Shift+* below. Ctrl+h/j/k/l are kept + // by the vim-zellij-navigator binds further down. + unbind "Ctrl b" "Ctrl g" "Ctrl n" "Ctrl o" "Ctrl p" "Ctrl q" "Ctrl s" "Ctrl t" + + // Mode entry (Alt+Shift+) + bind "Alt Shift P" { SwitchToMode "Pane"; } + bind "Alt Shift T" { SwitchToMode "Tab"; } + bind "Alt Shift R" { SwitchToMode "Resize"; } + bind "Alt Shift S" { SwitchToMode "Scroll"; } + bind "Alt Shift O" { SwitchToMode "Session"; } + bind "Alt Shift Z" { SwitchToMode "Locked"; } + bind "Alt Shift Q" { Quit; } + // Direct tab access (Alt+number) bind "Alt 1" { GoToTab 1; } bind "Alt 2" { GoToTab 2; } -- cgit v1.3.1