Skip to content

IME Preedit characters getting thicker when idle #10424

@pluiedev

Description

@pluiedev

Discussed in #10277

Originally posted by shivaduke28 January 12, 2026

Issue Description

When I input text in Japanese and text is left idle in preedit state, the thickness of the characters seems to increase.
When I type a character from the keyboard, the thickness returns to normal, but it gets thicker again if left idle.

I investigated the source code with the help of an agentic AI, it seems that preedit cells are rendered even when they are not dirty, and the thickness accumulates (src/renderer/generic.zig).

Expected Behavior

The thickness of preedit characters is unchanged.

Actual Behavior

The thickness of preedit characters increases over time when idle.

Reproduction Steps

  1. Open Ghostty.
  2. Type a character in Japanese.
  3. Leave text in preedit mode.
  4. Observe the thickness of the preedit characters increases.

Ghostty Logs

No response

Ghostty Version

Ghostty 1.2.3

Version
  - version: 1.2.3
  - channel: stable
Build Config
  - Zig version   : 0.14.1
  - build mode    : builtin.OptimizeMode.ReleaseFast
  - app runtime   : apprt.Runtime.none
  - font engine   : font.main.Backend.coretext
  - renderer      : renderer.generic.Renderer(renderer.Metal)
  - libxev        : kqueue

OS Version Information

MacOS 15.6.1

(Linux only) Display Server

None

(Linux only) Desktop Environment/Window Manager

No response

Minimal Ghostty Configuration

font-size = 12

Additional Relevant Configuration

No response

I acknowledge that:

  • I have reviewed the FAQ and confirm that my issue is NOT among them.
  • I have searched the Ghostty repository (both open and closed Discussions and Issues) and confirm this is not a duplicate of an existing issue or discussion.
  • I have checked the "Preview" tab on all text fields to ensure that everything looks right, and have wrapped all configuration and code in code blocks with a group of three backticks (```) on separate lines.

Metadata

Metadata

Assignees

No one assigned

    Labels

    fontIssue within the font stack (typically src/font)renderer

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions