fix(cli): handle Kitty keyboard protocol Shift+Enter for Ghostty/WezTerm (#2345)

fix(cli): handle Kitty keyboard protocol Shift+Enter for Ghostty/WezTerm
This commit is contained in:
Teknium 2026-03-21 10:04:19 -07:00 committed by GitHub
commit 3a71099dac
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

14
cli.py
View file

@ -6044,6 +6044,7 @@ class HermesCLI:
"""Ctrl+Enter (c-j) inserts a newline. Most terminals send c-j for Ctrl+Enter."""
event.current_buffer.insert_text('\n')
<<<<<<< Updated upstream
@kb.add('tab', eager=True)
def handle_tab(event):
"""Tab: accept completion, auto-suggestion, or start completions.
@ -6080,6 +6081,19 @@ class HermesCLI:
else:
# No menu and no suggestion — start completions from scratch
buf.start_completion()
=======
@kb.add('s-enter')
def handle_shift_enter(event):
"""Shift+Enter inserts a newline (standard terminals)."""
event.current_buffer.insert_text('\n')
# Kitty keyboard protocol: Ghostty and other Kitty-protocol terminals
# encode Shift+Enter as CSI 13;2u instead of a simple escape sequence.
@kb.add('escape', '[', '1', '3', ';', '2', 'u')
def handle_kitty_shift_enter(event):
"""Shift+Enter in Kitty keyboard protocol (Ghostty, WezTerm, etc.)."""
event.current_buffer.insert_text('\n')
>>>>>>> Stashed changes
# --- Clarify tool: arrow-key navigation for multiple-choice questions ---