Tahoe 26 Liquid Glass integration: theme picker hooks, layer-background mode, focus-report leak fix
RO
6mo ago+141+141+012345678901234567890123456789-32-32-01234567890123456789
Companion to cmux #2647 (Adopt macOS 26 Liquid Glass design) and cmux #2646 (sidebar sections). Both cmux PRs pin to this ghostty SHA; merging here lets them bump pointer back to manaflow-ai/ghostty#main.
Summary
Three logical groups, combined into one PR because cmux tests them together:
cmux theme picker integration
- Add cmux theme picker helper hooks
- Fix cmux theme picker preview writes
- Improve cmux theme picker footer contrast
- Respect system theme in cmux picker
- Skip theme detection in cmux picker
- Match Ghostty theme picker startup
- Harden cmux theme override writes
macos-background-from-layer config (needed for Liquid Glass translucent backgrounds)
- Add
macos-background-from-layerconfig flag - Skip fullscreen bg draw call in layer-background mode
Focus-report leak fix (ghostty-org/ghostty #2446)
- Seed initial focus state and avoid startup focus-report leak
- Merge of origin/main into the focus-reporting-leak branch (11th commit)
Test plan
-
zig buildclean - cmux theme picker opens, renders cmux-owned theme list, preview writes land without stomping user config
- With
macos-background-from-layer = true, Ghostty skips the fullscreen background draw — required for the SwiftUI.glassmaterial in cmux Liquid Glass mode to show through - Boot Ghostty with mode 2031 enabled; verify no spurious focus-out report at startup (issue #2446)
- cmux PRs #2647 and #2646 green after pointer bumps to merged SHA
Summary by cubic
Adds macOS layer-provided background support for Tahoe 26 Liquid Glass, integrates cmux theme picker hooks, and fixes a startup focus-report leak. The renderer can now skip its fullscreen background pass on macOS, and surfaces seed initial focus so DECSET 1004 doesn't emit at startup.
-
New Features
macos-background-from-layer(macOS): lets the host CALayer provide the background; renderer zeros bg alpha and skips the fullscreen fill. Enables Liquid Glass behavior.- Theme picker hooks for
cmux: picker renderscmuxtheme data with safe preview writes, startup parity, and system theme respect.
-
Bug Fixes
- Focus-report leak: surfaces accept an initial
focusedstate and seed the terminal before IO. Enabling DECSET 1004 no longer sends an immediate focus sequence.
- Focus-report leak: surfaces accept an initial