Wallpapers and colours
Choose a wallpaper, use your own images and see how pywal applies a shared palette across the desktop.
On this page
Start with the wallpaper
Open the picker with Super Shift W. Choose something from your folder or find an image from the web. The desktop uses the selected image as the source for its palette.

How the palette is applied
Choose a wallpaper in the example below to change this page’s palette. The three swatches show the guide’s current colour tokens.
Gyarados and the Great Wave
❯ New wallpaper.
Updated colours.
Shell
colours
The wallpaper is the starting point. On the desktop, awww displays the image you choose in the picker.
The palette is applied to the shell, terminal, yazi, GTK and Qt apps, Spotify through Spicetify, window borders, lock screen and SDDM login.
The steps are:
- The wallpaper script changes the background through
awww. - pywal extracts a palette and writes its cache and templates.
- Quickshell watches
~/.cache/wal/colors.json; the other integrations receive their theme updates.
The shell doesn’t need a restart to read a new palette.
Bring your own images
Put your wallpapers in ~/Pictures/wallpapers/, then open the picker to select one.
The project’s desktop captures include Andreas Achenbach’s Sunset after a Storm on the Coast of Sicily (1853) and Johan Christian Dahl’s An Eruption of Vesuvius (1824). Both come from The Met’s public-domain collection. See credits for sources and attribution details for the other wallpapers.
Status and music colours
A palette colour doesn’t always have the same meaning: pywal’s color2 might be green in one image and red in another. Success, warning and critical states therefore use fixed semantic colours in Colors.qml.
Music has its own accent. The shell extracts a readable colour from the current cover art. If there is no useful cover, it falls back to the wallpaper accent.
Troubleshoot colour updates
Start with troubleshooting. Check that the palette file changed before restarting anything; this separates a wallpaper or pywal problem from an application’s integration.
Source snapshot · 24 Oct 2026
Read the source