No description
Find a file
2026-08-30 19:03:05 -05:00
akspraypaint initial commit 2026-08-30 13:30:08 -05:00
gtk3-theme Included Better GTK and niri-color templates 2026-08-30 19:03:05 -05:00
gtk4-theme Included Better GTK and niri-color templates 2026-08-30 19:03:05 -05:00
niri-colors Included Better GTK and niri-color templates 2026-08-30 19:03:05 -05:00
CONTRIBUTING.md initial commit 2026-08-30 13:30:08 -05:00
LICENSE initial commit 2026-08-30 13:30:08 -05:00
README.md initial commit 2026-08-30 13:30:08 -05:00
registry.json initial commit 2026-08-30 13:30:08 -05:00

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.