2.0 KiB
2.0 KiB
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):
- Full omritning vid drag-släpp/stängning/snap (
needs_full_redraw). SafeBackend: explicit markörpositionering (ESC[y;xH) för varje cell som skrivs — breddoenighet kan inte längre ackumuleras inom en rad.- 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 $TERMi terminalen där felet syns.- En PNG-skärmbild via TUI-WM:s inbyggda
alt+pnä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å.