Skip to content

fix: blank screen after returning from exec shell#781

Open
daresTheDevil wants to merge 1 commit intojesseduffield:masterfrom
daresTheDevil:fix/resume-blank-screen-611
Open

fix: blank screen after returning from exec shell#781
daresTheDevil wants to merge 1 commit intojesseduffield:masterfrom
daresTheDevil:fix/resume-blank-screen-611

Conversation

@daresTheDevil
Copy link
Copy Markdown

@daresTheDevil daresTheDevil commented Mar 21, 2026

what's broken

after exec-ing into a container (shift+e) and exiting (ctrl+d), the screen goes completely blank. only way to recover is killing and relaunching lazydocker. happens on kitty, warp, and wsl, basically any modern terminal.

why it happens

gocui's Resume() calls tcell.Screen.Resume() which re-engages the terminal, but tcell's internal cell cache still thinks the old pre-suspend content is on screen. when gocui tries to redraw, it diffs against that stale cache, decides nothing changed, and writes nothing. blank screen.

the fix

one line: g.screen.Sync() after Resume(). this invalidates tcell's cache so the next draw cycle does a full repaint instead of diffing against stale data.

credit to @AbrhamSayd who identified the root cause and opened the upstream fix at jesseduffield/gocui#101. this PR applies the same fix directly to lazydocker's vendored gocui so it can ship without waiting on an upstream merge.

tested

  • kitty + orbstack on macOS. exec into container, ctrl+d out, clean redraw every time

fixes #611

after exec-ing into a container and ctrl+d-ing out, the screen goes
completely blank. you have to kill and relaunch lazydocker to get it
back. been happening on kitty, warp, and wsl.

the issue is in gocui's Resume() — tcell re-engages the terminal but
its cell cache still thinks the old content is on screen. next redraw
diffs against stale cache, sees "nothing changed", writes nothing.
blank screen.

adding screen.Sync() after Resume() nukes the cache and forces a full
repaint. tested on kitty + orbstack, redraws clean every time.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Cannot return to lazydocker from exec status in Warp

1 participant