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

docs / troubleshooting

Troubleshooting

A theme change didn't apply everywhere

Re-apply from saved state:

bash
~/.scripts/pwnbox-theme restore

Some apps only pick up colours when a new window opens (GTK apps). Log out and back in for a full refresh.

The bar is missing or looks wrong

Restart Quickshell:

bash
qs -n

The bar style is read from ~/.cache/pwnbox/theme/barstyle. Check it with cat ~/.cache/pwnbox/theme/barstyle. If a style looks broken, switch to another from ALT + S → Style.

The calendar opens in the wrong place

This is fixed: the calendar now follows the active bar's geometry (including the bottom dock), defined once in dotfiles/config/quickshell/BarStyles.js. If it is still off, make sure you rebuilt after the change and that Quickshell restarted.

Kitty shows "N by M cells" while resizing

That is kitty's live-resize overlay. It is drawn unconditionally by draw_resizing_text() in kitty/shaders.c and has no config option, so pwnbox patches it out in overlays/default.nix (kitty.overrideAttrs → postPatch). If it comes back after a kitty update, the patch's --replace-fail makes the build fail; update the matched string in the overlay to the new one in kitty/shaders.c.

Spotify

  • Theme not applied. Run pwnbox-spotify apply, then check ~/.local/share/pwnbox/spotify/.applied exists. If Spotify was updated, the writable copy is rebuilt automatically.
  • Changes don't show while running. The live update uses spicetify watch -s -l. Check it is running with pgrep -af 'spicetify watch' and look at ~/.cache/pwnbox/spotify-watch.log. The launcher passes --remote-debugging-port, so relaunch Spotify if you started it long ago.
  • Scrollbars are gone. That is intentional the base CSS hides them.
  • Fonts look wrong. Run pwnbox-spotify fonts and reopen Spotify if the watcher isn't attached.

Discord (Equibop)

  • The theme is hot-applied by Equibop watching its quickCss.css. Make sure the built-in QuickCSS feature is enabled in Equibop settings.
  • If it ever lags, focusing the window is enough; no reload is sent anymore.

Telegram (AyuGram)

  • While AyuGram runs, the theme file is rewritten and AyuGram reloads it live.
  • The first time (or after the theme path changes), the path must be registered, which requires Telegram to be closed. Close and reopen it once; after that updates are live.
  • Fonts are written to AyuGram's settings only while Telegram is closed.

Fonts or font sizes didn't change

Run the pickers again and confirm the state files:

bash
cat ~/.cache/pwnbox/theme/font-ui ~/.cache/pwnbox/theme/font-app
cat ~/.cache/pwnbox/theme/font-size-ui ~/.cache/pwnbox/theme/font-size-app
~/.scripts/pwnbox-theme borders   # re-applies fonts

kitty is signalled automatically; Quickshell is restarted automatically.

A build failed

Re-run verbosely and read the tail:

bash
./install.sh switch --verbose

The full log is at /tmp/pwnbox-install.log. If the system is unusable, boot an older generation from the boot menu.

GTK apps keep the old colours

GTK reloads its colour scheme awkwardly. The theme script toggles the GNOME colour scheme to nudge it; if a specific app still lags, restart that app.

Out of disk space

Garbage collection runs daily and keeps 7 days. To reclaim more:

bash
sudo nix-collect-garbage -d

Ly / login screen

LY reads the palette statically from modules/nixos/desktop/ly.nix, so it does not follow wallpaper themes at runtime. Change it there if needed.

Where to look

AreaPath
Theme engine~/.scripts/pwnbox-theme
Saved state~/.cache/pwnbox/theme/
Spotify watcher log~/.cache/pwnbox/spotify-watch.log
Quickshell Theme~/.config/quickshell/Theme.js
Installer log/tmp/pwnbox-install.log