Files
TUI-WM/docs/KNOWN-ISSUES.md
2026-07-16 00:53:43 +02:00

2.0 KiB
Raw Blame History

Kända problem

Spöktecken i vissa terminaler vid fönsterflytt

Status: öppen — behöver reproduktionsinfo från värdterminalen.

Symptom: när ett fönster (t.ex. TUI-FM) dras runt kan enstaka ikoner och bokstäver "fastna" på skärmen — ofta från vänsterspalten i TUI-FM — tills en annan ruta dras över dem.

Analys hittills:

  • Kompositorn är verifierat korrekt: headless-frames (daemon-läget) är pixelperfekta efter godtyckliga drag — varje rad exakt rätt bredd, inga dubbletter (tests/integration.py + manuella tmux-tester).
  • I tmux (strikt referensterminal) uppstår inga spöken, varken under eller efter drag.
  • Rotorsaksklass: terminalen/fonten och unicode-width är oense om glyfbredder (typiskt emoji med tvetydig East-Asian-Width, t.ex. ), eller terminalens hantering av delvis överskrivna breda glyfer.

Åtgärdade delar (som inte räckt fullt ut enligt rapport):

  1. Full omritning vid drag-släpp/stängning/snap (needs_full_redraw).
  2. SafeBackend: explicit markörpositionering (ESC[y;xH) för varje cell som skrivs — breddoenighet kan inte längre ackumuleras inom en rad.
  3. Skade-expansion för breda glyfer: när ett brett tecken ersätts av ett smalt skrivs högercellen över explicit (ratatui-diffen ser den inte eftersom båda buffertarna har space där).

För att komma vidare behövs:

  • Terminalemulator + version (Konsole? Kitty? Alacritty? ...) och font.
  • echo $TERM i terminalen där felet syns.
  • En PNG-skärmbild via TUI-WM:s inbyggda alt+p när spöket syns (visar kompositorns bild) plus en riktig skärmdump av terminalen (visar vad terminalen faktiskt ritar) — skiljer de sig är felet bekräftat terminal-sidigt.
  • Test i en annan terminal (t.ex. kitty eller wezterm) för jämförelse.

Möjliga nästa steg: rendera om hela raden (inte bara cellen) när en rad innehåller tecken med tvetydig bredd; alternativt heltäckande frame-omskrivning med synkroniserade uppdateringar (DEC 2026) som i klient-läget, där problemet inte kan uppstå.