[GH-ISSUE #685] Warp sends modified keys as plain control keys (Shift+Enter, Alt+Backspace, Cmd+Backspace) #185

Open
opened 2026-03-02 23:45:09 +03:00 by kerem · 0 comments
Owner

Originally created by @slimewell on GitHub (Feb 13, 2026).
Original GitHub issue: https://github.com/anomalyco/opentui/issues/685

Summary

In Warp (macOS), several modified keys are emitted as plain control codes, causing keybind mismatches in OpenTUI consumers.

Capture Method

node -e "process.stdin.setRawMode(true); process.stdin.on('data', d => { if (d[0] === 3) process.exit(); console.log('Len:', d.length, 'Hex:', d.toString('hex'), 'Raw:', JSON.stringify(d.toString())) })"

Observed (macOS)

Ghostty (reference)

  • Shift+Enter -> 1b5b32373b323b31337e (\x1b[27;2;13~)
  • Alt/Option+Backspace -> 1b7f (\x1b\x7f)
  • Cmd+Backspace -> 15 (\x15)

Warp

  • Shift+Enter -> 0a (\n, linefeed)
  • Alt/Option+Backspace -> 17 (\x17, same as Ctrl+W)
  • Cmd+Backspace -> 15 (\x15, same as Ctrl+U)

Impact

Keybinds relying on modifier metadata may not trigger as expected in Warp.

Originally created by @slimewell on GitHub (Feb 13, 2026). Original GitHub issue: https://github.com/anomalyco/opentui/issues/685 ## Summary In Warp (macOS), several modified keys are emitted as plain control codes, causing keybind mismatches in OpenTUI consumers. ## Capture Method ```bash node -e "process.stdin.setRawMode(true); process.stdin.on('data', d => { if (d[0] === 3) process.exit(); console.log('Len:', d.length, 'Hex:', d.toString('hex'), 'Raw:', JSON.stringify(d.toString())) })" ``` ## Observed (macOS) ### Ghostty (reference) - Shift+Enter -> `1b5b32373b323b31337e` (`\x1b[27;2;13~`) - Alt/Option+Backspace -> `1b7f` (`\x1b\x7f`) - Cmd+Backspace -> `15` (`\x15`) ### Warp - Shift+Enter -> `0a` (`\n`, linefeed) - Alt/Option+Backspace -> `17` (`\x17`, same as Ctrl+W) - Cmd+Backspace -> `15` (`\x15`, same as Ctrl+U) ## Impact Keybinds relying on modifier metadata may not trigger as expected in Warp. ## Related - anomalyco/opentui#434 - anomalyco/opentui#555 - anomalyco/opencode#8645
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/opentui#185
No description provided.