Skip to content

InioX/matugen

Repository files navigation




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

license version
downloads stars
Installation · Wiki · Themes

Donations through Ko-Fi are welcome!

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)

    • 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, and can be used as a standalone templating engine
  • Generate / Export Material You color palettes

    • Generate a full Material You 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

    • 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 levels and choose the scheme type (light, dark, or custom variants)
    • Fine-tune the generated palette to match your preference or application theme

Other projects

  • Mitsugen - For gnome-shell, based on the old version of Matugen
  • pywal - More color generation backends, default theme files.
  • wpgtk - Like pywal, but with a gui and more features.

Supported platforms

  • Windows
  • Linux
  • MacOS
  • NetBSD

Installation

Cargo Cargo Version

Click to expand
cargo install matugen

Arch AUR Version

Click to expand

Using your favourite AUR helper:

yay -S matugen-bin

NixOS nixpkgs NixOS Version

Click to expand

Add matugen to your flake inputs:

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:

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:

{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 #28

Option details can be found by reading the module. A search.nixos.org-like option viewer is planned.

NetBSD pkgsrc current package

Click to expand
pkgin install matugen

or, if you prefer to build it from source

cd /usr/pkgsrc/graphics/matugen
make install

Themes

Templates

Acknowledgements