Skip to content

Advanced App Theming

Noctalia includes powerful theming capabilities that can automatically apply your chosen color scheme to various applications. Whether you’re using colors from your wallpaper or a predefined scheme, Noctalia can keep your entire desktop consistent.It also includes some advanced features for you to use.

For advanced users who want to theme additional applications, Noctalia supports custom Matugen templates.

  1. Go to Settings → Color Scheme → Templates
  2. Scroll to Misc section
  3. Enable User templates
  4. A template file will be created at ~/.config/noctalia/user-templates.toml

Edit ~/.config/noctalia/user-templates.toml to add your custom templates:

[config]
# Example: Theme Alacritty terminal
[templates.alacritty]
input_path = "~/.config/noctalia/templates/alacritty.toml"
output_path = "~/.config/alacritty/colors.toml"
post_hook = "echo 'Alacritty theme updated'"

Your template files use Matugen’s template syntax with color placeholders:

/* Example CSS template */
.my-app {
background: {{colors.surface.default.hex}};
color: {{colors.on_surface.default.hex}};
accent: {{colors.primary.default.hex}};
}

Matugen generates a full Material Design 3 color palette with many color roles like primary, secondary, tertiary, surface, error, and more.

For a complete list of all available colors and formats, see the Matugen Configuration Documentation.

You can also look at Noctalia’s built-in templates in Assets/MatugenTemplates/ for practical examples.

  1. Create template file anywhere you like (e.g., ~/.config/matugen/templates/myapp.css or ~/myapp-template.css)
  2. Add color placeholders using the syntax above
  3. Configure in user-templates.toml with input/output paths
  4. Optional: Add post_hook to reload the app after theming
  5. Change your color scheme and the template will be processed automatically

Post hooks run commands after generating a theme, useful for reloading applications:

[templates.neovim]
input_path = "~/.config/matugen/templates/neovim-colors.lua"
output_path = "~/.config/nvim/colors/noctalia.lua"
post_hook = "echo 'Neovim theme updated - restart Neovim to apply'"
  • Restart the application - Some apps need a restart to load new themes
  • Verify template syntax - Invalid syntax will prevent theme generation
  • Light/Dark mode - Check if your color scheme setting matches your preference
  • Matugen not installed - Wallpaper colors require matugen package
  • Application limitations - Some apps may not support all color properties
  • File paths - Use absolute paths or ~ for home directory
  • TOML syntax - Validate your user-templates.toml syntax
  • Check logs - Run Noctalia from terminal to see error messages

If you need to manually trigger theme regeneration:

  1. Change any color scheme setting in Noctalia
  2. Toggle between wallpaper colors and predefined schemes
  3. Switch dark/light mode

For theming support: