Community themes for Aphotic-Hypr.
See that repo's themes/THEME_SPEC.md for the full theme.toml contract.
A theme is a directory holding one or more wallpapers plus a theme.toml
manifest. Downloading one copies that directory into ~/.config/awww/.
That is the whole install, and the filesystem is the registry.
| Theme | What it looks like |
|---|---|
dracula |
High-contrast purple and pink on near-black, pinned to the official Dracula palette |
aphotic theme list --remote
aphotic theme download dracula
aphotic theme set draculaThe first download clones this repo to ~/aphotic-themes; later ones
pull it. Or browse and download from Settings → Appearance in the shell
itself.
aphotic theme update <name> refreshes a downloaded theme, and
aphotic theme remove <name> deletes it. Neither touches the themes that
ship with Aphotic.
Copy dracula/ and edit it. The smallest valid theme.toml is two
lines:
[theme]
display_name = "My Theme"With nothing else declared, Aphotic derives the palette from whichever
wallpaper is alphabetically first, using its own wallust defaults.
themes/THEME_SPEC.md in the main repo covers the rest: colour engine
pins, light mode, folder-icon accents, and icon/cursor/GTK theme pins.
Two of those knobs read a pywal-format JSON file rather than deriving colours from an image:
[engine].colorschemepins a fixed palette, so the colours stay put no matter which wallpaper is showing.dracula/uses this.[palette].anchorbounds how far a wallpaper-derived palette may drift from the theme's own look.
Both name a file your theme ships at <theme>/colorschemes/<name>.json,
which aphotic theme download installs alongside the wallpapers. Pair an
anchor with [engine].palette = "ansi", or its hue ceiling measures
against whichever colour happened to land in a slot.
Run scripts/build-index.py to regenerate index.json, which is what
aphotic theme list --remote and the Settings pane read. Then open a PR.
CI checks that every theme matches its index entry, ships the palette
file it names, and has at least one wallpaper. main takes no direct
pushes.
Wallpapers must be yours to license under GPL-3.0, or public domain.
scripts/generate-wallpapers.py builds the gradients in dracula/ out
of the theme's own palette, if you want colours before art.
GPL-3.0. See LICENSE.