Donations through Ko-Fi are welcome!
Themes
#### Templates for programs and websites
- [InioX/matugen-themes](https://github.com/InioX/matugen-themes)
Description
### Features
> [!TIP]
> If you would like to learn more about the features and configuration, read the wiki here.
- **Templating engine built with Chumsky (designed for colors)** - [Read More](https://iniox.github.io/#matugen/templates)
- Custom engine focused on making color manipulation simple and efficient
- Import a color once in any format and automatically access all other formats (`hex`, `rgb`, `rgba`, `hsl`, etc.)
- Colors are parsed as real color objects, not strings, making filters faster and more reliable
- Supports piping, nested expressions, conditionals, loops, filters, includes, arithmetic operations, escaping output.
- Can be used as a standalone templating engine. You can import custom json files or define and override them in the CLI.
- **Generate / Export Material You and base16 color palettes**
- Generate a full Material You or base16 palette from either an image or a single color
- Export the generated palette as JSON or reference palette keywords directly within templates
- Easily integrate palette values into config files, themes, or style templates
- **Keyword Filters** - [Read More](https://iniox.github.io/#matugen/filters)
- Modify any keyword using filters such as `replace`, `to_upper`, `to_lower`, and `set_lightness`
- Includes built-in color filters for adjusting hue, saturation, lightness, opacity, and more
- Filters can be chained together for powerful inline transformations
- **Custom Keywords / Colors**
- Import any JSON file (through CLI or config) and use its contents directly inside templates
- Imported colors receive full multi-format support, just like built-in palette colors
- Useful for adding custom theme data, config variables, or full color schemes
- **Palette Customization**
- Adjust contrast, lightness and choose the scheme type (light, dark, or custom variants)
- Fine-tune the generated palette to match your preference or application theme
## Quick Start
Generate a color palette from an image:
```shell
matugen image path/to/wallpaper.jpg
```
Generate from a hex color:
```shell
matugen color hex "#ff0000"
```
View all options:
```shell
matugen --help
```
### Other projects
- [Mitsugen](https://github.com/DimitrisMilonopoulos/mitsugen) - For gnome-shell, based on the [old](https://github.com/InioX/matugen/tree/python) version of Matugen
- [pywal](https://github.com/dylanaraps/pywal) - More color generation backends, default theme files.
- [wpgtk](https://github.com/deviantfero/wpgtk) - Like pywal, but with a gui and more features.
Supported platforms
- Windows
- Linux
- MacOS
- NetBSD
Installation
Cargo
Click to expand
```shell
cargo install matugen
```
Arch
Click to expand
#### AUR:
```shell
yay -S matugen-bin
```
#### Arch extra repo
```shell
sudo pacman -S matugen
```
NixOS
Click to expand
Add matugen to your flake inputs:
```nix
inputs = {
matugen = {
url = "github:InioX/Matugen";
# If you need a specific version:
ref = "refs/tags/matugen-v0.10.0";
};
# ...
};
```
Then you can add it to your packages:
```nix
let
system = "x86_64-linux";
in {
environment.systemPackages = with pkgs; [
# ...
inputs.matugen.packages.${system}.default
];
}
```
This flake also provides a NixOS/Home Manager module, which can be imported by
adding this in your configuration:
```nix
{pkgs, inputs, ...}: {
imports = [
inputs.matugen.nixosModules.default
];
# ...
}
```
The module does NOT automatically symlink the files. For an example of using this module with Home Manager, see https://github.com/InioX/matugen/issues/28
Option details can be found by reading the [module](./module.nix). A
[search.nixos.org](https://search.nixos.org/options)-like option viewer is
planned.
NetBSD
Click to expand
```shell
pkgin install matugen
```
or, if you prefer to build it from source
```shell
cd /usr/pkgsrc/graphics/matugen
make install
```
Acknowledgements
- [material-colors](https://github.com/Aiving/material-colors)
- [wallpaper.rs](https://github.com/reujab/wallpaper.rs) - Changing wallpaper for Windows
---
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.