[BUG] Ctrl+J newline broken under Korean IME after v2.1.84 cursor tracking fix
Description
After updating to Claude Code v2.1.84, Ctrl+J no longer inserts a newline when the Korean (Hangul) IME is active. It still works correctly in English input mode.
This regression appears to be caused by the v2.1.84 change:
"Fixed native terminal cursor not tracking the text input caret, so IME composition (CJK input) now renders inline and screen readers can follow the input position."
Steps to Reproduce
- Open Claude Code in Warp terminal
- Switch macOS input source to Korean (한국어)
- Press
Ctrl+Jin the chat input - Expected: A newline is inserted
- Actual: Nothing happens
Switch back to English input → Ctrl+J works as expected.
Before v2.1.84
Ctrl+J inserted a newline in both Korean and English input modes without any custom keybinding configuration.
After v2.1.84
- English input:
Ctrl+J→ newline ✅ - Korean IME active:
Ctrl+J→ no response ❌
Workaround Attempted
Adding "ctrl+j": "chat:newline" to ~/.claude/keybindings.json restores newline in English mode only. Korean IME mode remains broken, suggesting the issue is in how key events are captured/dispatched when IME composition is active.
Root Cause Hypothesis
The v2.1.84 cursor tracking fix changed the key input processing path so that IME composition now renders inline. This likely moved key event handling from the terminal's native layer (where Ctrl+J = LF regardless of IME state) to Claude Code's internal keybinding system, which does not receive Ctrl+J when the Korean IME is active.
Environment
- Claude Code: 2.1.84
- Terminal: Warp 0.2026.03.18.08.24.03
- OS: macOS Sequoia 15.5 (24F74) x86_64
- Input Method: macOS built-in Korean IM
- Machine: iMac (Retina 5K, 27-inch, 2019), Intel Core i5-9600K
Related Issues
- #26075 — Add
chat:newlinekeybinding action - #22732 — Korean IME composition visibility
- #10547 — Ctrl+Backspace / Ctrl+Arrow with CJK input
5 Comments
Additional context: This is likely related to #16764 (Option+Enter newline regression in v2.1.1). In that issue's comments, a user reported the exact same
Ctrl+Jnewline breakage starting from v2.1.1:The root cause may trace back to the terminal keyboard mode changes introduced in v2.1.0:
The v2.1.84 IME cursor tracking fix appears to have further broken this for CJK IME active states specifically, making
Ctrl+Junresponsive only when Korean IME is engaged.Found 3 possible duplicate issues:
This issue will be automatically closed as a duplicate in 3 days.
🤖 Generated with Claude Code
❌ Not a duplicate — here's why
The three suggested duplicates are all distinct issues:
#17649 (CLOSED) — AquaSKK Ctrl+J for IME mode switching
#39206 — Numpad Enter outputs raw CSI u sequence
57414utext instead of submitting (Kitty protocol parsing failure)#38694 — Caps Lock IME switching intercepted
[57358uinstead of switching IME (Kitty protocol intercepting modifier keys)---
What makes this issue unique
chat:newlinekeybinding workaround doesn't fix it for Korean IME — the key event never reaches Claude Code's keybinding system when IME is composingThis is a regression in IME-aware key event dispatching, not a Kitty protocol encoding issue or an IME mode-switching conflict. Please keep this issue open.
Resolved in v2.1.85
The Ctrl+J newline issue under Korean IME is no longer reproducible as of v2.1.85.
The likely fix is this entry from the v2.1.85 release notes:
While Ctrl+J / Korean IME isn't explicitly mentioned, the newline insertion path appears to have been corrected as part of this fix. Closing — will reopen if it regresses.
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.