cmux-next Settings: one Opacity and one Material in the wallpaper card
Settings had five controls for one question: how see-through the window is over the wallpaper. Leo's report: "the opacity thing, and then the window glass, it just doesn't make sense. And then there's this other transparency / translucency situation." On the base:
- The wallpaper card had Opacity and a Window Glass switch. The switch only set Material to Clear Glass (
appearance.backgroundBlur = "glass-clear") under another name. - Further down Appearance, the Window Background group repeated Material (Frosted, Glass, Clear Glass, None) and offered Backdrop Art, a second painting chooser. That's the legacy
appearance.backdropArt, whichappearance.backgroundreplaced. - Experimental added Glass Transparency (
appearance.glassTransparency), a second opacity multiplied into the first. It only applied while Experimental Appearance Controls was on.
Now the wallpaper card holds the window's two controls, once each:
- Opacity: how much of the theme color covers the wallpaper.
- Material: Frosted, Glass, Clear Glass or None. Its summary says what the old switch did: "Clear Glass shows the desktop through the wallpaper".
The Window Glass switch is gone. Backdrop Art and Glass Transparency are off the Settings page and out of the palette (hiddenFromSettingsPage). Both keys still load and apply exactly as before, so existing cmux.json files keep working. Hue and Saturation stay under Experimental.
The generated schema exports (schemas/settings/*, docs/mdm/*) aren't edited by hand. The PR autofix regenerates them.
Tests
- Committed first (fe05b621b36), red on the base:
bun test src/pages/settings/hostCards.test.tsxgives 12 pass, 1 fail. The card still had[data-window-glass]. - On the head, the settings suite passes, run on Huge Blue against a schema patched the way the export will regenerate it (the two rows
page_hidden, the new Material summary): 167 pass, 1 fail. The one failure iscategories.test"the page renders the exported layout", because my hand patch didn't touch the exported page layout. The real export regenerates both from the same descriptors. rowSummary.testnow checks Material's one-line summary instead of the hidden Backdrop Art row.
Proof
Gallery variant pages.settings/backdrops, captured from the gallery build in headless Chromium on Huge Blue (Linux). The card shows Opacity and Material, with no Window Glass switch:
Before:

After:

Observed / Not run
- Observed: the red/green web tests above,
bun run check(the only failure is thecheck:text-focusbase finding in untouched Swift files), and the capture. - Not run: the Swift build and the settings export. CI and the autofix are their first run.
Localization: one new key, settings.appearance.backgroundBlur.summary, in CmuxNextSettings/Localizable.xcstrings, with all 21 locales (machine translated, each under 60 characters). The two Window Glass strings are removed from CmuxNextSettingsWindow/Localizable.xcstrings.
Changelog
Changed: Settings > Appearance shows Opacity and Material together in the wallpaper card. The Window Glass switch (the same as Material: Clear Glass), the legacy Backdrop Art chooser and the experimental Glass Transparency slider are gone from Settings, and their config keys still work.
🤖 Generated with Claude Code