You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Title: [Bug] Korean IME: Initial syllable composition fails on first input
Description
When using the Korean IME in the Ghostty terminal on macOS, the initial consonant (Jamo) of the first typed syllable is immediately committed to the terminal instead of entering a pre-edit state. When the subsequent vowel is typed, the initial consonant disappears, and a new composition begins, resulting in the loss of the first consonant.
This issue only occurs on the very first attempt to type Korean on changing English to Korean. Subsequent attempts to types work correctly.
Environment
Ghostty Version: 1.2.2
Operating System: macOS
System Version: macOS 15.5 (24F74)
Kernel Version: Darwin 24.5.0
Secure Virtual Memory: Enabled
System Integrity Protection: Enabled
Time since boot: 29 days, 1 hour, 13 minutes
Model Name: MacBook Pro
Model Identifier: Mac15,8
Chip: Apple M3 Max
Total Number of Cores: 16 (12 performance and 4 efficiency)
Memory: 128 GB
System Firmware Version: 11881.121.1
OS Loader Version: 11881.121.1
Shell: zsh
Input Method: Standard macOS Korean IME (2-Set Korean)
Steps to Reproduce
Launch the Ghostty terminal.
Switch the system input method to Korean.
Attempt to type the word "한글" (Hangeul) by pressing the keys g, k, s in sequence.
Problem: The moment you press g (for the character ㅎ), it is rendered directly to the terminal instead of being held in a pre-edit buffer (which is typically indicated by an blinking cursor box or curosr underline).
When you then press k (for the vowel ㅏ), the previously committed ㅎ character remain in the terminal, and only the input starts fresh from ㅏ.
The final result is incorrect, forming ㅏㄴ (ks) after 'ㅎ' instead of the intended 한 (gks).
Expected Behavior
When the key for the initial consonant ㅎ is pressed, it should be held in the IME's pre-edit buffer, awaiting the next vowel for composition. It should not be committed to the terminal immediately. Typing the subsequent vowel ㅏ should correctly combine with the buffered ㅎ to form the syllable 하.
Actual Behavior
The initial consonant is prematurely committed to the terminal as a final character. When the next vowel is typed, this committed consonant is ignored, and a new composition process begins. This bug only affects the first attempt at Korean input on changing English to Korean; subsequent attempts works correctly, as demonstrated in the attached video.
Additional Context
This bug significantly impacts the user experience for those who type in Korean, causing constant interruptions and errors. A review of how the terminal handles IME composition for complex script languages seems necessary.
Just tested a few Korean IME related discussion, can confirm that this is still happening on tip (c41c6b8)
Discussed in #9213
Originally posted by icedac October 15, 2025
CleanShot.2025-10-15.at.15.30.56.mp4
Title: [Bug] Korean IME: Initial syllable composition fails on first input
Description
When using the Korean IME in the Ghostty terminal on macOS, the initial consonant (Jamo) of the first typed syllable is immediately committed to the terminal instead of entering a pre-edit state. When the subsequent vowel is typed, the initial consonant disappears, and a new composition begins, resulting in the loss of the first consonant.
This issue only occurs on the very first attempt to type Korean on changing English to Korean. Subsequent attempts to types work correctly.
Environment
Steps to Reproduce
g,k,sin sequence.g(for the characterㅎ), it is rendered directly to the terminal instead of being held in a pre-edit buffer (which is typically indicated by an blinking cursor box or curosr underline).k(for the vowelㅏ), the previously committedㅎcharacter remain in the terminal, and only the input starts fresh fromㅏ.ㅏㄴ(ks) after 'ㅎ' instead of the intended한(gks).Expected Behavior
When the key for the initial consonant
ㅎis pressed, it should be held in the IME's pre-edit buffer, awaiting the next vowel for composition. It should not be committed to the terminal immediately. Typing the subsequent vowelㅏshould correctly combine with the bufferedㅎto form the syllable하.Actual Behavior
The initial consonant is prematurely committed to the terminal as a final character. When the next vowel is typed, this committed consonant is ignored, and a new composition process begins. This bug only affects the first attempt at Korean input on changing English to Korean; subsequent attempts works correctly, as demonstrated in the attached video.
Additional Context
This bug significantly impacts the user experience for those who type in Korean, causing constant interruptions and errors. A review of how the terminal handles IME composition for complex script languages seems necessary.