About
Theme Switcher
Browse saved themes in a carousel and apply palette, wallpaper, and templates to the shell in one click. Each theme bundles a palette source (built-in, wallpaper, community, or custom), the wallpaper that goes with it, a preview screenshot, and a title.
Plugin
| Field | Value |
|---|---|
| ID | theblackdon/theme-switcher |
| Entries | Shortcut: open; shortcut: wallpaper; shortcut: random; bar widget: theme-switcher; panel: carousel; panel: editor; panel: wallpapers; service: wallpaper-ipc |
Requirements
- No dependency is needed to browse, apply, or switch themes and wallpapers.
- The editor's
Capture desktophelper needs at least one screenshot tool onPATH:spectacle,grim,gnome-screenshot,scrot, ormaim. The first one that exists is used. Without any of them the button reports a capture failure; everything else keeps working.
Usage
Enable the plugin in Settings → Plugins.
Add a
Theme Switcherbar widget, a control center shortcut, or run:noctalia msg panel-toggle theblackdon/theme-switcher:carouselIn the carousel, click a theme card to apply it immediately (palette source + selection, wallpaper, and templates). Use the pencil button on a card to edit it, the plus button to add a new one.
The editor lets you pick a palette source (built-in, wallpaper, community, or custom), the matching palette or generator scheme, one or more wallpapers, a screenshot path (including a "Capture desktop" helper), and a title. Open the editor directly with:
noctalia msg panel-toggle theblackdon/theme-switcher:editorThe
wallpapershortcut opens the wallpapers panel, which lets you browse and switch the wallpapers of the currently applied theme without re-applying the palette. Open it with:noctalia msg panel-toggle theblackdon/theme-switcher:wallpapersThe
randomshortcut applies a random wallpaper from the currently applied theme with a single click.
Keyboard bindings
Wallpaper switching is reachable over IPC via the always-running wallpaper-ipc
service, so you can bind these to keys as KWin/KineticWE custom shortcuts
(Command/URL action):
noctalia-kwe msg plugin theblackdon/theme-switcher:wallpaper-ipc all random
noctalia-kwe msg plugin theblackdon/theme-switcher:wallpaper-ipc all next
noctalia-kwe msg plugin theblackdon/theme-switcher:wallpaper-ipc all apply "Rose Pine"
noctalia-kwe msg panel-toggle theblackdon/theme-switcher:carousel
noctalia-kwe msg panel-toggle theblackdon/theme-switcher:wallpapers
noctalia-kwe msg panel-toggle theblackdon/theme-switcher:editor
Use
:wallpaper-ipcforrandom/next/apply. Dispatching to the:wallpaperspanel only works while that panel is open; a service is always ready.
applytakes a theme id (the slug of its title, e.g.rose-pine) or its title ("Rose Pine"), case-insensitively. Partial matches work when unambiguous.
Use noctalia instead of noctalia-kwe if that is the binary name on your system.
How a theme is applied
Applying a theme sets the active wallpaper first, then runs noctalia msg color-scheme-set <source> <palette> to switch the palette, and finally noctalia msg templates-apply to re-render the configured templates. A theme can hold several wallpapers; the active one is selected in the walls panel.
Screenshots
| Carousel | Editor | Wallpapers |
|---|---|---|
![]() |
![]() |
![]() |
Notes
- Community palettes are listed from the Noctalia palette catalog over HTTP, with an offline fallback to the plugin's cached copy and the shell's community-palette cache.
- Custom palettes are read from
~/.config/noctalia/palettes/*.json. - Themes are stored in the plugin's data directory (
themes.json). Capture desktopruns the screenshot tool found onPATHdirectly (no shell) and writes the PNG to~/Pictures/Screenshots, then stores that path in the theme. It is the only thing this plugin writes outside its data directory, and it only runs when you press the button.- Applying a theme spawns the shell CLI (
noctalia, ornoctalia-kweon this build) forcolor-scheme-setandtemplates-apply. Wallpaper changes go through the shell's ownnoctalia.setWallpaperAPI.
Versions
| Version | Plugin API | Updated |
|---|---|---|
| v0.1.0 latest | 28 | Sep 22, 2026 |
Older versions stay installable on a Noctalia release whose plugin API is below the latest version's.


