Skip to content

feat(shell): 功能键编码 (#30) - #239

Merged
JavaZeroo merged 1 commit into
mainfrom
feat/function-keys
Oct 30, 2026
Merged

JavaZeroo merged 1 commit into
mainfrom
feat/function-keys

Conversation

@JavaZeroo

Copy link
Copy Markdown
Owner

内容

补键盘映射里缺失的功能键(#30 计划中的一项):

键 字节
F1–F4 ESC O P/Q/R/S
F5–F12 ESC [ 15~ / 17~ / 18~ / 19~ / 20~ / 21~ / 23~ / 24~(xterm 表,不是物理顺序)

带修饰键的 F1–F4 用 CSI 1;<mod>P 形式;F5 及以后沿用既有的 CSI <n>;<mod>~ 形式。

测试

keyboard_test 新增:12 个功能键的完整字节断言 + Ctrl+F1 → ESC [ 1;5 P。

本地:keyboard normal-mode sequences, modifiers, UTF16 boundaries and focus reset passed,termforge_shell 构建通过。

边界

  • 未覆盖 xterm 的 modifyFunctionKeys 扩展模式(如 CSI 1;2P 之外的 ESC O 1;2P 变体);
  • 功能键在应用键盘模式下的差异尚未观察,保持当前实现。

Refs #30

F1-F4 use the SS3 letters, F5-F12 use the xterm tilde numbers, and a modified F1 keeps the CSI modifier form; keyboard_test pins all twelve.
@JavaZeroo
JavaZeroo merged commit 9a8a0b1 into main Oct 30, 2026
9 of 10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant