Plain lowercase "i" decoded as Ctrl+Alt+I in TUI only; works in repl
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 19.9k
- Forks
- 2.3k
- Avg merge
- 2d 7h
- Merged PRs (30d)
- 30
Description
Environment
- jcode 0.75.2 (Windows)
- Connected via SSH from Termux (Android)
- Any keyboard layout — the failing character is the plain ASCII
i(U+0069)
Bug
Pressing the ordinary lowercase i key in the TUI does not insert the letter. Instead jcode reports the unbound chord Ctrl+Alt+I ("Ctrl+Alt+I isn't bound, nearest: Alt+I toggle info widget"). The letter i cannot be typed at all.
Not a keyboard-layout quirk
This is the standard English i (U+0069), not a special Turkish character. Verified at the terminal layer with od -An -tx1 -c: the keypress sends a clean 69 (plain ASCII i). The same key works fine in jcode repl mode. So the defect is specific to the TUI input path.
Suspected cause
The TUI enables the kitty keyboard protocol (enable_keyboard_enhancement); the key arrives with a Ctrl+Alt modifier bit. Setting keyboard_enhancement = false under [terminal] in ~/.jcode/config.toml had no effect after a full daemon + client restart, suggesting that config key is ignored or the enhancement is enabled unconditionally.
Expected
i inserts i in the TUI.
Workaround
jcode repl works for typing i, but it is not the full TUI experience.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start in the TUI input path, comparing its keyboard handling with jcode repl mode, and inspect where the kitty keyboard protocol and terminal configuration are applied. Reproduce with a plain ASCII i over SSH, then verify that the TUI inserts i normally and that keyboard_enhancement = false is honored after restarting the daemon and client.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 62/100