mirror of
https://github.com/NousResearch/hermes-agent.git
synced 2026-04-25 00:51:20 +00:00
fix(cli): handle Kitty keyboard protocol Shift+Enter for Ghostty/WezTerm
Kitty-protocol terminals (Ghostty, WezTerm) encode Shift+Enter as CSI 13;2u instead of plain Enter. Without this binding, raw escape characters appear in the input buffer. Adds s-enter and the Kitty escape sequence as newline-insert bindings. Based on work by ygd58 in PR #1798. Fixes #1795. Registry.py apostrophe sanitization change excluded (unrelated scope).
This commit is contained in:
parent
aefcdd6f7f
commit
356122e990
1 changed files with 14 additions and 0 deletions
14
cli.py
14
cli.py
|
|
@ -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 ---
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue