A cross-platform material you and base16 color generation tool
(pronounced: mat-uh-gen)

license version
downloads stars
Installation · Wiki · Themes

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 Cargo Version

Click to expand ```shell cargo install matugen ```

Arch Arch Linux package

Click to expand #### AUR: ```shell yay -S matugen-bin ``` #### Arch extra repo ```shell sudo pacman -S matugen ```

NixOS nixpkgs

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 pkgsrc current package

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.