pwnbox The manual. Every option, every key, every file.

docs / themes

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

EntryWhat it changes
PywalPick a wallpaper; extract a palette from it
CustomPick one of the fixed-palette themes
StyleBar layout (10 styles)
Corner radiusWindow rounding, in px
UI corner radiusBar / panel / rofi rounding, in px
System fontUI font
System font sizeUI font size
Application fontMonospace/app font
Application font sizeApp font size
BlurWindow blur on/off
TransparencyWindow opacity (%)
AnimationsHyprland 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:

text
dotfiles/themes/
├── Monochrome/
│   ├── theme.conf
│   └── wallpaper.png
├── Amoled/
│   ├── theme.conf
│   └── wallpaper.png
├── Catppuccin-Mocha/
│   ├── theme.conf
│   └── wallpaper.png
└── Tokyo-Night/
    ├── theme.conf
    └── wallpaper.jpg

theme.conf is INI-style:

ini
name = My theme
wallpaper = wallpaper.png

background = #101014
foreground = #e6e6e6
cursor = #e6e6e6

color0 = #17171c
color1 = #f7768e
# … color2 … color15

Any 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 fileUsed by
~/.config/quickshell/Theme.jsQuickshell bar/panels
~/.cache/pwnbox/theme/kitty.confkitty (included by the base config)
~/.cache/pwnbox/theme/rofi.rasirofi (imported by the themes)
~/.cache/pwnbox/theme/fuzzel.inifuzzel
~/.cache/pwnbox/theme/gtk-colors.cssGTK 3/4
~/.cache/pwnbox/theme/nvim-palette.luaNeovim
~/.cache/pwnbox/theme/hyprland.confHyprland borders
~/.cache/pwnbox/theme/colors.jsonhelpers/scripts
~/.config/zed/themes/pwnbox.jsonZed
~/.config/telegram/pwnbox.tdesktop-themeTelegram / AyuGram
~/.config/spicetify/Themes/pwnbox/color.iniSpotify
~/.config/equibop/settings/quickCss.cssDiscord (Equibop)

Where state lives

FileMeaning
~/.cache/pwnbox/theme/wallpaperCurrent wallpaper path
~/.cache/pwnbox/theme/custom-themeCurrent custom theme name
~/.cache/pwnbox/theme/barstyleCurrent bar style
~/.cache/pwnbox/theme/radius-windowWindow radius
~/.cache/pwnbox/theme/radius-uiUI radius
~/.cache/pwnbox/theme/bluron / off
~/.cache/pwnbox/theme/opacityTransparency %
~/.cache/pwnbox/theme/animationson / off
~/.cache/pwnbox/theme/font-uiSystem font
~/.cache/pwnbox/theme/font-appApplication font
~/.cache/pwnbox/theme/font-size-uiSystem font size
~/.cache/pwnbox/theme/font-size-appApplication font size

Command line

~/.scripts/pwnbox-theme can be called directly:

bash
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