feat(config): add CSI‑u shift+enter handling and new shortcut bindings

This commit is contained in:
Prad Nukala committed 2026-10-08 14:36:58 -04:00
1 parent 8cd148bafd
commit 964f8a83b6
3 files changed
+28 -7

No files matched your search

+13 -1
View File
@@ -110,6 +110,11 @@ set -g detach-on-destroy no-detached
set -g extended-keys on
set -g extended-keys-format csi-u
set -ag terminal-features "xterm-kitty:extkeys"
# shift+enter (Ghostty sends ESC[13;2u): pass it through as ESC[13;2u for
# coding agents (omp, claude) to insert a newline. With extended-keys `on`,
# tmux would flatten it to a plain Enter for any app that never asked for
# extended keys.
bind -N "Shift+Enter as CSI-u" -n S-Enter send-keys -H 1b 5b 31 33 3b 32 75
set -as terminal-features ",*:clipboard"
set -sg escape-time 10
@@ -192,9 +197,16 @@ set -g @plugin 'eduwass/tmux-palette'
# shortcut labels) lives in ~/.config/tmux-palette/.
set -g @palette-key 'C-Space'
# pj's task runner as a palette (pj-palette): quick actions + project tasks,
# each run in a new window. prefix + t (Ghostty ctrl+shift+space).
# each run in a bottom split. prefix + t (Ghostty ctrl+shift+p / +space).
bind -N "Project tasks (pj)" t run-shell "~/.config/tmux/plugins/tmux-palette/bin/tmux-palette.sh tasks"
# Direct launchers, the kitty ctrl+shift chords (Ghostty sends prefix + key).
# Programs are exec'd so the tab icon is the program's.
bind -N "Yazi in a new window" y new-window -c "#{pane_current_path}" "exec yazi"
bind -N "Neovim in a new window" e new-window -c "#{pane_current_path}" "exec nvim"
bind -N "Lazygit popup" g display-popup -E -w 90% -h 90% -d "#{pane_current_path}" lazygit
bind -N "omp in a right split (33%)" a split-window -h -f -l 33% -c "#{pane_current_path}" "exec omp"
# sessionx: fuzzy session switcher/creator on prefix + o (Ghostty
# ctrl+shift+o). A query with no match goes to zoxide; uses fzf --tmux.
set -g @sessionx-bind 'o'