Skip to content

Korean IME composition (marked) text renders at bottom of screen instead of at the input position #570

Description

@42maru

Summary

When typing Korean text with the macOS built-in Korean input source (2-Set Hangul), the in-progress IME composition (marked text) is rendered at the bottom of the terminal screen instead of at the prompt input position. This affects all CJK input methods that rely on inline composition and makes Korean input hard to use, since the user cannot see the composing characters next to the text already entered in the input box.

Expected Behavior

The IME composition (marked) text should appear inline at the input cursor position, inside the prompt input box — i.e. the TUI should move the hardware terminal cursor to the input position while composing so the terminal emulator renders the composition view there.

Actual Behavior

The composition string appears at the bottom-left area of the screen, detached from the input box. After the composition is committed, the finalized text correctly appears in the input box — only the in-progress composition is misplaced. This suggests the TUI never repositions the hardware cursor to the input field (no cursor positioning during input), so the terminal emulator draws its IME composition view wherever the cursor happens to be parked.

Steps to reproduce the issue

  1. On macOS, enable the Korean input source (System Settings > Keyboard > Input Sources > Korean - 2-Set Hangul).
  2. Start cmd in a terminal (reproduced in the Orca embedded terminal; likely affects other terminals as well).
  3. Switch to the Korean input source and type any Korean syllable, e.g. press gks (한) slowly without committing.
  4. Observe that the composing character appears at the bottom of the screen rather than in the input box.

Environment

  • Command Code Version: 0.52.1
  • Operating System: macOS 26.5.2 (arm64)
  • Terminal: Orca (embedded terminal)
  • Shell: zsh (/bin/zsh)

Additional context

  • Reproduces with the stock macOS Korean IME; no third-party IME involved.
  • The same inline-composition mechanism is used by Japanese and Chinese input methods, so those users are likely affected too.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions