Terminal support

labdash runs on any terminal that speaks virtual-terminal sequences. This is what each one gives you.

The matrix

TerminalColourMouseClipboardResizeUnicode
Windows TerminaltruecolorOSC 52
WezTermtruecolorOSC 52
GhosttytruecolorOSC 52
AlacrittytruecolorOSC 52
kittytruecolorOSC 52
iTerm2truecolorOSC 52
Terminal.app256systempartial
GNOME TerminaltruecolorOSC 52
KonsoletruecolorOSC 52
VS Code terminaltruecolorOSC 52
tmuxinheritsOSC 52 passthrough
GNU screen256nonenonepartial
SSH into any of the aboveinheritsinheritsOSC 52inherits
WSLinherits from the hostOSC 52
Linux virtual console16nonenoneASCII mode
CI log capturenonenonenonenoneASCII mode

Windows Terminal is the development machine and the first one checked each release.

Colour detection

DetectedResult
COLORTERM=truecolor or 24bitThe full palette, exactly as designed
TERM contains 256colorNearest match into the 256-colour cube
TERM without eitherANSI 0 to 15. Your terminal's own theme supplies the hues
NO_COLOR set, or TERM=dumbNo colour at all. Hierarchy comes from glyphs, weight and layout

At the 16-colour tier labdash borrows your terminal's palette, so it matches everything else in the session. theme: { name: ansi } selects that tier on any terminal.

Detection happens once at startup and is stored.

tmux

Clipboard needs OSC 52 passthrough turned on:

set -g set-clipboard on

Without it, y and Y copy into tmux's own buffer rather than your system clipboard.

For truecolor inside tmux:

set -g default-terminal "tmux-256color"
set -as terminal-features ",*:RGB"

Suspending

Ctrl+Z suspends labdash and fg brings it back with the alternate screen, the cursor and your scroll position exactly as you left them. The shell you return to is the one you started from, with its scrollback untouched, because labdash draws on the alternate screen and never writes to yours.

SSH

The device-flow login exists for this case. A remote machine has no localhost for your browser to reach, so a loopback OAuth callback cannot work. labdash auth login prints a code you approve on whichever device has a browser.

Clipboard works over SSH through OSC 52, with no helper installed on either end.

Windows

Windows Terminal and ConPTY are the development target and are checked first, for resize, mouse, Unicode and key handling.

The classic conhost.exe console window lacks the virtual-terminal sequences a full-screen application needs. Run labdash in Windows Terminal.

Fonts

No patched font is needed. The status glyphs come from ordinary Unicode blocks, and every one has a single-character ASCII fallback, so a screen rendered both ways has identical column boundaries.

Three glyphs are classed as East Asian Ambiguous and are drawn two cells wide by a terminal configured for CJK text. auto reads your locale and chooses ascii there. Set it yourself when you want the other answer:

settings.yml
theme:
  icons: ascii    # or: unicode

Restricted terminals

For serial consoles, CI log capture, and corporate terminals that block anything above ASCII:

settings.yml
theme:
  name: mono
  icons: ascii

That combination emits no byte above 0x7F and no colour.

Sizes

ColumnsWhat you get
under 56A notice with the current and required width
56 to 79Single pane, two-line rows, three columns
80 to 119Single pane, preview at the bottom
120 to 159Split, preview on the right. The reference size
160 and upSplit, more columns

Vertically, below 12 rows the section tab bar is dropped and the section name moves into the context bar. Between 12 and 19 rows the bottom preview is disabled, and auto resolves to the right-hand pane or to none.

Terminal problem reports

Include the terminal name and version, the output of labdash doctor, and a screenshot of labdash theme preview. Those three answer nearly every rendering question at once.