Skip to content

Configuration

ini edited this page May 30, 2024 · 18 revisions

Creating templates

Keywords

Important

Since 1.0.0, you have to define the scheme and format instead of leaving both empty for default values.

  • Basic syntax: {{<key>}}
  • Colors: {{colors.<color>.<scheme>.<format>}}
  • Image: {{image}}
  • Custom: {{custom.<keyword>}}

Colors

A - All colors start with the {{colors. prefix

B - The color keyword from here

C - The scheme from here or default

D - The format from here

Example of all the color keywords:

Keyword Keyword
primary error
on_primary on_error
primary_container error_container
on_primary_container on_error_container
inverse_primary surface_dim
primary_fixed surface
primary_fixed_dim surface_bright
on_primary_fixed surface_container_lowest
on_primary_fixed_variant surface_container_low
secondary surface_container
on_secondary surface_container_high
secondary_container surface_container_highest
on_secondary_container on_surface
secondary_fixed on_surface_variant
secondary_fixed_dim outline
on_secondary_fixed outline_variant
on_secondary_fixed_variant inverse_surface
tertiary inverse_on_surface
on_tertiary surface_variant
tertiary_container background
on_tertiary_container on_background
tertiary_fixed shadow
tertiary_fixed_dim scrim
on_tertiary_fixed on_tertiary_fixed_variant
source_color

Example of all the formats:

Format Example Output
hex #ffffff
hex_stripped ffffff
rgb rgb(255, 255, 255)
rgba rgba(255, 255, 255, 255)
hsl hsl(0, 0%, 0%)
hsla hsla(0, 0%, 0%, 0.0)
red 255
green 255
blue 255
alpha 255
hue 255
saturation 255
lightness 255

Image

You can also get the image path (if it was provided) by using:

{{image}}

Custom keywords

Example config:

[config.custom_keywords]
font1 = "Google Sans"

Usage in templates:

{{ custom.font1 }}

Custom colors

Example config:

[config.custom_colors]
red = { color = "#ff0000", blend = false }

Usage in templates:

{{ colors.red.default.hex }}

Configuration

Here is a list of different locations for the configuration file:

  • Windows: C:\Users\user\AppData\Roaming\InioX\matugen\config\config.toml
  • Linux: /home/user/.config/matugen/config.toml
  • MacOS: /Users/user/Library/Application Support/com.InioX.matugen/config.toml

Tip

You can also use a custom configuration path by using the -c argument

Configuration items

Name Type Default Description
reload_apps bool false Whether to reload apps.
set_wallpaper bool false Whether to set the wallpaper (if true, requires wallpaper_tool to be set).
wallpaper_tool String None The wallpaper tool to use (Swwww, Swaybg, Feh, Nitrogen).
prefix String "@" The prefix to use (for example: @{primary})
reload_gtk_theme bool false Whether to reload the gtk theme. REMOVED, USE gtk_theme in config.reload_apps_list.
run_after Vec [] The commands to run after the templates have been generated. REMOVED, USE A WRAPPER FUNCTION FOR MATUGEN INSTEAD.
swww_options <Vec> [] The options to use for Swwww
feh_options <Vec> [] The options to use for Feh

Apps

Name Type Default Description
kitty bool true Whether to reload kitty.
waybar bool true Whether to reload waybar.
dunst bool true Whether to reload dunst.
gtk_theme bool true Whether to reload the GTK theme.

Example

# config_directory/config.toml
[config]
reload_apps = true
set_wallpaper = true
wallpaper_tool = 'Swww'
prefix = '@'
swww_options = [
    "--transition-type",
    "center",
]
run_after = [
    [ "echo", "'hello'" ],
    [ "echo", "'hello again'" ],
]

[config.reload_apps_list]
waybar = true
kitty = true
gtk_theme = true
dunst = true

Adding templates

Name Type Default Description
mode Option<Modes> Mode provided in args Which scheme to use for the template.
input_path PathBuf None Path to the template file.
output_path PathBuf None Path to export the template to.

Example

# config_directory/config.toml

[templates.test] # First way of adding template
input_path = '~/.config/example/template.css'
output_path = '~/.config/example'

[templates] # Another way
test2 = { input_path = '~/.config/example/template2.css', output_path = '~/.config/example2' }