Skip to content

feat(settings): expose custom color palette (closes #1586) - #3600

Open
ksh2177 wants to merge 1 commit into
end-4:mainfrom
ksh2177:feat/custom-color-ui
Open

feat(settings): expose custom color palette (closes #1586)#3600
ksh2177 wants to merge 1 commit into
end-4:mainfrom
ksh2177:feat/custom-color-ui

Conversation

@ksh2177

@ksh2177 ksh2177 commented Aug 20, 2026

Copy link
Copy Markdown

Describe your changes

Closes #1586. Good news: the engine for this has existed in switchwall.sh all along — it just never had UI.

  • switchwall.sh --color picks a color with hyprpicker and generates the entire theme from that seed instead of the wallpaper (matugen color hex), persisted as appearance.palette.accentColor so it survives light/dark toggles.
  • --color clear returns to wallpaper-derived colors — and picking a new wallpaper already clears the custom color too (existing behavior in main()).
  • Because the seed flows through the exact same generation pipeline as wallpaper mode, all three color-application paths (shell/matugen templates, terminal, Qt apps) work unchanged — the concern raised in the issue about the three theming systems doesn't apply here: no new color-application code is involved.

This PR adds the missing UI in Settings → Quick: a Custom color button (shows the active hex when one is set) and a Back to wallpaper colors button, right under the scheme selector.

Daily-driven on my machine (Arch + Hyprland) — the seed persists across light/dark toggles and scheme changes, and clears as expected when choosing a new wallpaper.

Is it ready? Questions/feedback needed?

Ready. Possible follow-ups if there's interest (kept out to stay single-purpose): a generated-palette button (e.g. local HSV harmonies), and saving several palettes as reusable presets.

The engine for this has existed in switchwall.sh all along:
`--color` picks a color with hyprpicker and generates the entire theme
from that seed instead of the wallpaper (matugen `color hex`), persisted
as appearance.palette.accentColor so it survives light/dark toggles;
`--color clear` returns to wallpaper-derived colors, and picking a new
wallpaper already clears it too. All three theming paths (shell, terminal,
Qt apps) flow through the same generation as wallpaper mode, so no new
color-application code is needed.

This adds the missing UI: a 'Custom color' button (shows the active hex
when set) and a 'Back to wallpaper colors' button in Settings > Quick.
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.

Custom color palette support

1 participant