A cross-platform material you and base16 color generation tool | packaged for debian
Find a file
Penelope Gwen 0ecadb52fe
Some checks failed
Release-plz / Release-plz (push) Has been cancelled
rustfmt / cargo fmt (push) Has been cancelled
prepare for debian packaging
2026-07-03 08:38:59 -07:00
.cargo feat: increase windows stack size to 8mb (fixes #87) 2024-07-01 10:09:46 +02:00
.github docs: Add Ko-fi username for funding 2025-12-01 17:01:48 +01:00
assets chore: update all tapes 2023-08-13 21:54:17 +02:00
example feat: add source_color_index to config (closes #289) 2026-06-06 11:17:29 +02:00
material-colors@e8715bcfa6 feat: add cache for per template scheme types (#292) 2026-04-24 21:06:35 +02:00
src templete: add enabled key 2026-06-11 19:28:25 +03:00
.envrc chore: add .envrc 2026-02-09 14:39:04 +01:00
.gitignore chore: add .direnv to gitignore 2026-02-12 20:38:07 +01:00
Cargo.lock chore: release v4.1.0 2026-03-22 09:24:31 +01:00
Cargo.toml prepare for debian packaging 2026-07-03 08:38:59 -07:00
CHANGELOG.md chore: release v4.1.0 2026-03-22 09:24:31 +01:00
compare-script.ts chore: add compare-script.ts 2025-09-04 20:33:15 +02:00
default.nix fix(nix): add dump-json feature build flag 2024-08-27 14:13:24 +02:00
flake.lock fix: update nix flake to allow building again 2026-02-22 15:08:40 +01:00
flake.nix chore: add compare-script.ts 2025-09-04 20:33:15 +02:00
LICENSE chore: add license 2023-05-06 16:17:23 +02:00
module.nix Minimize the bugfix 2026-05-10 18:26:28 +03:00
package.json chore: add compare-script.ts 2025-09-04 20:33:15 +02:00
pnpm-lock.yaml chore: add compare-script.ts 2025-09-04 20:33:15 +02:00
README.md docs: change nixos version badge to unstable 2026-03-22 09:24:09 +01:00
rustfmt.toml wip: change cache color format 2025-07-14 22:46:29 +02:00
shell.nix fix: cargo fmt & alejandra (nix formatter) 2024-08-17 21:54:25 +02:00




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

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

    • 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

    • 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

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 Arch Linux package

Click to expand

AUR:

yay -S matugen-bin

Arch extra repo

sudo pacman -S matugen

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 https://github.com/InioX/matugen/issues/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

Acknowledgements


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.