Skip to content

Chat text blurs while scrolling, then sharpens when scroll stops #1315

Open

Description

@a-drop-of-tears

Description

While scrolling a chat, interface text (especially Chinese) looks faint and blurry. The moment scrolling stops, the same text snaps back to crisp. This is not a permanent DPI blur.

Steps to reproduce

  1. Open a chat with Chinese body text on Linux (X11), 1920×1080 at 100% scale.
  2. Scroll the transcript with the mouse wheel or trackpad.
  3. Stop scrolling and look at the same glyphs.

Expected behavior

Glyphs stay as sharp while scrolling as they are when idle.

Actual behavior

During scroll, strokes look gray and soft, as if they are being scaled on a composited layer. After scroll ends they re-rasterize and look sharp again.

The installed web bundle sets this on body:

  • -webkit-font-smoothing: antialiased
  • -moz-osx-font-smoothing: grayscale

Interface font is Geist Variable, with a non-integer UI weight (button weight computes to 470). Grayscale antialiasing plus a fractional device/layer transform during scroll is a likely cause. There is no setting to turn antialiased off.

Related but different: #440 (static DPI blur on Windows) and #1059 (CJK weight rounding on macOS).

Environment

  • OS: Deepin 25 (Linux 6.18), X11, eDP 1920×1080 @ 60Hz, 100% scale
  • ThinkRail: 0.3.2 stable, hash 3d3xuqvzex269, desktop app ai.thinkrail.app
  • Node: v24.18.0
  • Bun: not used (installed desktop build)

Activity

  1. danyaberezun commented on Nov 12, 2026

    @danyaberezun
    Collaborator

    Could you check whether this still happens on the current release, v0.4.0, and also try starting the desktop app from a terminal with WEBKIT_DISABLE_COMPOSITING_MODE=1 set? On Linux the desktop app renders through WebKitGTK, and blur that shows only while scrolling more likely comes from its compositing than from our CSS (-webkit-font-smoothing only takes effect on macOS). If it's still reproducible, please tell us whether that variable changes anything and whether the same chat scrolls crisply in a regular browser via the thinkrail CLI; otherwise we'll close this.

  2. a-drop-of-tears commented on Nov 13, 2026

    @a-drop-of-tears
    Author

    WEBKIT_DISABLE_COMPOSITING_MODE=1 fixes it on v0.4.0.

    OS: Deepin 25 (Crimson), X11
    Client: ThinkRail desktop app 0.4.0 (stable, hash 25klkb0x7q6br), WebKitGTK
    Without the variable, text blurs while scrolling. With it set and the app fully restarted, scrolling is sharp.
    I set it on the desktop launcher (Exec=env WEBKIT_DISABLE_COMPOSITING_MODE=1 …/launcher) and confirmed the new process has the variable. I have not tried the same chat in a regular browser via the thinkrail CLI. danyaberezun

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions