Themes & customization
Everything visual is driven from one palette. You can either let pywal extract that palette from a wallpaper, or pin it with a custom theme.
The ALT+S menu
| Entry | What it changes |
|---|---|
| Pywal | Pick a wallpaper; extract a palette from it |
| Custom | Pick one of the fixed-palette themes |
| Style | Bar layout (10 styles) |
| Corner radius | Window rounding, in px |
| UI corner radius | Bar / panel / rofi rounding, in px |
| System font | UI font |
| System font size | UI font size |
| Application font | Monospace/app font |
| Application font size | App font size |
| Blur | Window blur on/off |
| Transparency | Window opacity (%) |
| Animations | Hyprland animations on/off |
Every choice is written to ~/.cache/pwnbox/theme/ and re-applied on login.
Wallpaper themes (Pywal)
ALT + S → Pywal scans ~/.local/share/pwnbox/wallpapers (the flake's dotfiles/gnome/wallpapers, linked read-only). Pick an image and pywal derives a 16-colour palette from it. That palette is then written everywhere:
- Quickshell (
~/.config/quickshell/Theme.js) - kitty, rofi, fuzzel
- GTK 3 / 4 and GNOME settings
- Hyprland borders, Hyprlock
- Neovim, Zed
- Telegram, Equibop, Spotify
Add wallpapers by dropping images into dotfiles/gnome/wallpapers/ and rebuilding.
Custom themes
A custom theme is a folder under dotfiles/themes/<Name>/ with a theme.conf and (optionally) a wallpaper:
dotfiles/themes/
├── Monochrome/
│ ├── theme.conf
│ └── wallpaper.png
├── Amoled/
│ ├── theme.conf
│ └── wallpaper.png
├── Catppuccin-Mocha/
│ ├── theme.conf
│ └── wallpaper.png
└── Tokyo-Night/
├── theme.conf
└── wallpaper.jpgtheme.conf is INI-style:
name = My theme
wallpaper = wallpaper.png
background = #101014
foreground = #e6e6e6
cursor = #e6e6e6
color0 = #17171c
color1 = #f7768e
# … color2 … color15Any missing colour falls back to the monochrome palette, so a minimal theme is just name, background and foreground. See dotfiles/themes/README.md for the full reference.
After adding a theme folder, rebuild (upd) so it is linked, then choose it from ALT + S → Custom. The command-line equivalent is pwnbox-theme custom.
What is generated
The theme scripts read the active palette and write a small set of files that apps include or read:
| Generated file | Used by |
|---|---|
~/.config/quickshell/Theme.js | Quickshell bar/panels |
~/.cache/pwnbox/theme/kitty.conf | kitty (included by the base config) |
~/.cache/pwnbox/theme/rofi.rasi | rofi (imported by the themes) |
~/.cache/pwnbox/theme/fuzzel.ini | fuzzel |
~/.cache/pwnbox/theme/gtk-colors.css | GTK 3/4 |
~/.cache/pwnbox/theme/nvim-palette.lua | Neovim |
~/.cache/pwnbox/theme/hyprland.conf | Hyprland borders |
~/.cache/pwnbox/theme/colors.json | helpers/scripts |
~/.config/zed/themes/pwnbox.json | Zed |
~/.config/telegram/pwnbox.tdesktop-theme | Telegram / AyuGram |
~/.config/spicetify/Themes/pwnbox/color.ini | Spotify |
~/.config/equibop/settings/quickCss.css | Discord (Equibop) |
Where state lives
| File | Meaning |
|---|---|
~/.cache/pwnbox/theme/wallpaper | Current wallpaper path |
~/.cache/pwnbox/theme/custom-theme | Current custom theme name |
~/.cache/pwnbox/theme/barstyle | Current bar style |
~/.cache/pwnbox/theme/radius-window | Window radius |
~/.cache/pwnbox/theme/radius-ui | UI radius |
~/.cache/pwnbox/theme/blur | on / off |
~/.cache/pwnbox/theme/opacity | Transparency % |
~/.cache/pwnbox/theme/animations | on / off |
~/.cache/pwnbox/theme/font-ui | System font |
~/.cache/pwnbox/theme/font-app | Application font |
~/.cache/pwnbox/theme/font-size-ui | System font size |
~/.cache/pwnbox/theme/font-size-app | Application font size |
Command line
~/.scripts/pwnbox-theme can be called directly:
pwnbox-theme menu # the ALT+S menu
pwnbox-theme pick # wallpaper picker
pwnbox-theme custom # custom theme picker
pwnbox-theme monochrome # built-in grey theme
pwnbox-theme apply <image> # apply a wallpaper palette directly
pwnbox-theme barstyle # bar style picker
pwnbox-theme borders # re-apply borders/effects
pwnbox-theme restore # re-apply everything from saved state
pwnbox-theme uifont # system font picker
pwnbox-theme appfont # application font picker
pwnbox-theme uifontsize # system font size picker
pwnbox-theme appfontsize # application font size picker
pwnbox-theme blur # blur picker
pwnbox-theme transparency # transparency picker
pwnbox-theme animations # animations picker