- CSS 100%
| akspraypaint | ||
| gtk3-theme | ||
| gtk4-theme | ||
| niri-colors | ||
| CONTRIBUTING.md | ||
| LICENSE | ||
| README.md | ||
| registry.json | ||
noctalia-templates
Noctalia v5 app theme templates, maintained by akinus. Same layout as
noctalia-dev/community-templates —
this repo can be added as a template source, or individual templates can be
pointed at directly via a [theme.templates.user.<id>] entry while developing.
Layout
One top-level directory per template id:
<id>/
├── template.toml # catalog entry + render config (required)
├── <input file> # the actual template, written in Noctalia's template syntax
├── apply.sh # optional post-render hook
└── README.md # optional, app-specific setup notes
template.toml shape:
[catalog.<id>]
name = "Display Name"
category = "wallpaper" # see Noctalia docs for the standard category list
[templates.<id>]
input_path = "<input file>" # relative to this directory
output_path = "$XDG_CONFIG_HOME/some-app/theme.conf" # where Noctalia writes the render
post_hook = "bash '{{ config_dir }}/apply.sh'" # optional
registry.json at the repo root indexes every template here. It is generated by CI —
never edit it by hand. A PR that touches it directly will fail.
Templates
| id | App | Category |
|---|---|---|
akspraypaint |
AKSprayPaint | wallpaper |
Developing a template locally
You don't need this repo cloned anywhere special to test a template. Point a
user template at your working copy directly, in ~/.config/noctalia/config.toml
(or any .toml under ~/.config/noctalia/):
[theme.templates.user.my_template]
input_path = "~/dev/noctalia-templates/my_template/my_template.conf"
output_path = "$XDG_CONFIG_HOME/my-app/theme.conf"
post_hook = "bash '~/dev/noctalia-templates/my_template/apply.sh'"
Confirm it's picked up:
noctalia theme --list-templates
Then change the active theme (or re-apply the current one) and check the app actually updates. Test both dark and light, and apply twice to confirm any hook is idempotent.
One wrinkle: a user template's {{ config_dir }} resolves to your Noctalia
config directory, not the template's own folder — that's why the example
above spells out a full path to apply.sh. Once a template ships from this
repo's catalog, Noctalia resolves {{ config_dir }} to its own cached copy
of the template folder instead, so the manifest itself should just use
{{ config_dir }}/apply.sh.
Contributing
See CONTRIBUTING.md.