Skip to content

feat(wallpaper): sync wallpaper with light/dark theme - #4011

Open
mdj2812 wants to merge 10 commits into
noctalia-dev:mainfrom
mdj2812:feat/wallpaper-theme-sync
Open

feat(wallpaper): sync wallpaper with light/dark theme#4011
mdj2812 wants to merge 10 commits into
noctalia-dev:mainfrom
mdj2812:feat/wallpaper-theme-sync

Conversation

@mdj2812

@mdj2812 mdj2812 commented Aug 19, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Add [wallpaper.theme_sync] config with global and per-monitor path_light / path_dark bindings, plus a settings toggle
  • Switch wallpapers when the resolved theme changes, with a 150ms startup debounce to avoid double transitions on login
  • Assign bindings from the wallpaper panel Dark/Light tabs (and Auto via resolved appearance); theme sync must be enabled in settings first

Closes #1612

Test plan

  • Unit tests (wallpaper_theme_sync_paths_test)
  • Desktop: wallpaper-set updates bindings for resolved mode; theme mode switch applies bound wallpapers
  • Global bindings always updated alongside per-monitor overrides
  • Manual: wallpaper panel picks on Dark/Light/Auto tabs with theme sync enabled
  • Manual: verify startup debounce when theme flips shortly after login
recording_20260819_140519.mp4

Made with Cursor

mdj2812 and others added 9 commits August 19, 2026 13:26
Introduce wallpaper.theme_sync settings for per-theme wallpaper paths,
including optional per-monitor overrides.

Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve, query, and persist light/dark wallpaper bindings, with unit
tests for global and per-monitor overrides.

Co-authored-by: Cursor <cursoragent@cursor.com>
Apply theme-bound paths on startup and theme transitions, debounce
startup races, seed bindings when sync is enabled, and skip automation
for outputs with active bindings.

Co-authored-by: Cursor <cursoragent@cursor.com>
Expose sync wallpaper with theme in wallpaper settings and document
that bindings are assigned from the wallpaper panel.

Co-authored-by: Cursor <cursoragent@cursor.com>
Bind wallpapers to the active Dark or Light tab on selection, refresh
the browse directory when switching tabs, and show theme sync badges.

Co-authored-by: Cursor <cursoragent@cursor.com>
Use the resolved light/dark appearance when the Auto tab is active so
picking a wallpaper updates the binding instead of being skipped.

Co-authored-by: Cursor <cursoragent@cursor.com>
When the wallpaper panel or wallpaper-set targets every output, write
per-monitor theme sync paths alongside the global binding so existing
monitor overrides do not mask the new pick.

Co-authored-by: Cursor <cursoragent@cursor.com>
Keep path_light/path_dark in sync when binding a single monitor so
automation guards and all-monitor lookups see the binding. Add unit
tests for monitor-only gaps and single-monitor writes.

Co-authored-by: Cursor <cursoragent@cursor.com>
Centralize manual-pick and seed binding helpers in wallpaper_paths, stop auto-enabling theme sync on panel picks, and expand unit test coverage.

Co-authored-by: Cursor <cursoragent@cursor.com>
@mdj2812
mdj2812 marked this pull request as draft August 19, 2026 05:47
Co-authored-by: Cursor <cursoragent@cursor.com>
@mdj2812
mdj2812 marked this pull request as ready for review August 19, 2026 06:13
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.

Switch wallpaper according to light/dark theme changes

1 participant