Skip to content

[webgl] Partial row ghosting with transparent theme background on WKWebView / Tauri (stable macOS) #5847

@longshuaige

Description

@longshuaige

Summary

On a Tauri (WKWebView) app using @xterm/addon-webgl with allowTransparency: true and a semi-transparent theme.background, lines with ANSI background colors (diff rows, cursor row, selection) progressively develop partial ghosting / overlap during streaming output such as Claude Code / git diff / tree. A window resize temporarily clears it.

This appears related to but distinct from #5816 — that one is the fully broken rendering on macOS 26.5 beta Safari. Mine reproduces on stable macOS inside Tauri (WKWebView) only, without needing any beta OS, and the visual symptom is partial rather than complete corruption. Filing separately per the pattern suggested in discussion.

Environment

  • @xterm/xterm 6.0 (latest)
  • @xterm/addon-webgl ^0.19.0 (latest)
  • Tauri (WKWebView) on macOS stable (not 26.5 beta)
  • MacBook Pro Retina display, devicePixelRatio = 2
  • allowTransparency: true, theme.background: "rgba(20, 20, 25, 0.25)" (or similar alpha < 1)
  • Custom wallpaper visible behind the terminal

Visual symptom

[screenshot: renderErrIng1.png]

  • Upper half of the screen (diff lines with red/green ANSI backgrounds): severe character overlap / ghosting
  • Lower half (plain text lines): perfectly clean
  • The ghosting is localized to lines that have a non-null cell background color — which is the key asymmetry that rules out "every frame is being overlaid globally"

Steps to reproduce

  1. Inside a Tauri WKWebView window on stable macOS, instantiate an xterm Terminal with:
    new Terminal({
      allowTransparency: true,
      theme: { background: 'rgba(20,20,25,0.25)', foreground: '#fff' },
    });
    term.loadAddon(new WebglAddon());
    
Image Image

Metadata

Metadata

Assignees

No one assigned

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions