stylix icon indicating copy to clipboard operation
stylix copied to clipboard

feature: Matugen / Material You Modules

Open Mikilio opened this issue 4 weeks ago • 3 comments

Description

Some modules rely on custom mustache templates for base16, even though there is a maintained alternative in other frameworks. The Qt module is one of them, and I recently had to update the mustache template in PR https://github.com/nix-community/stylix/pull/2023 because it has been causing visual artifacts after Qt has been significantly evolving in the last year. In stylix it is not uncommon that modules don't get their CSS updated frequently and that no one checks.

With PR https://github.com/nix-community/stylix/pull/892 we'd have a color scheme generator for Material You themes (the very popular Matugen) available. For Qt e.g., there is a maintained Material You theme.

Since we'd have another theme generator to choose from, I'd like to track modules that could use them so we could get rid of all abandoned custom CSS/mustache and replace them with maintained flexible themes.

This issue is supposed to track the current progress of adding Material You modules.

Stage 0

  • [ ] Get the Matugen generator into stylix. This will happen through #892 or by integrating the NixOS module from https://github.com/InioX/matugen

Stage 1

Add a setting to each target that when enabled will make the module use a Material You them.

List of known Material You templates

Stage 2

Organize use votes and make Material the default for when it is the better choice.

Usually, 'Material You' is better for widget based UIs due to less colors but more surface options and base themes are better for text based UIs due to having more accent colors. (base24 is the best for both, and you can easily derive both types of themes from them. Discussion may take place in #252)

Mikilio avatar Nov 26 '25 23:11 Mikilio

With PR https://github.com/nix-community/stylix/pull/892 we'd have a color scheme generator for Material You themes [...]

[...] we'd have another theme generator to choose from

For reference, whether Material You will be interfaced is still undecided 1 2, although I am in favor of this 2.

Stage 1

Add a setting to each target that when enabled will make the module use a Material You them.

[...]

Stage 2

Organize use votes and make Material the default for when it is the better choice.

Assuming Material You is expressive enough for all our modules, should we not always use Material You when applications do not explicitly use base-n schemes? Not exclusively using Material You could make sense when it is not expressive enough. In that case, base16 themes can be replaced without keeping both variants around during migration.

trueNAHO avatar Nov 27 '25 14:11 trueNAHO

Assuming Material You is expressive enough for all our modules, should we not always use Material You when applications do not explicitly use base-n schemes? Not exclusively using Material You could make sense when it is not expressive enough. In that case, base16 themes can be replaced without keeping both variants around during migration.

I think an objective argument can be made that Material You is generally worse for syntax highlighting due to it's weakness of not covering enough foreground colors. This is a direct hit to UX. So even without trying them out, I can already tell from the above list the following programs are likely to look objectively better or more ergonomic with base-n (? means I am not 100% sure):

  • Alacritty
  • Btop
  • Cava
  • Ghostty ? ( I don't know if the style here refers to the termgui or to the gtk wrapper)
  • Helix
  • Kitty
  • Micro
  • Neovim
  • Starship
  • Television
  • Tmux ? (tmux doesn't really use that many colors)
  • Yazi
  • Zathura ? (highlighting may require more colors)
  • Zed ? (I don't know how it is styled)

Mikilio avatar Nov 27 '25 20:11 Mikilio

Assuming Material You is expressive enough for all our modules, should we not always use Material You when applications do not explicitly use base-n schemes? Not exclusively using Material You could make sense when it is not expressive enough. In that case, base16 themes can be replaced without keeping both variants around during migration.

I think an objective argument can be made that Material You is generally worse for syntax highlighting due to it's weakness of not covering enough foreground colors. This is a direct hit to UX. So even without trying them out, I can already tell from the above list the following programs are likely to look objectively better or more ergonomic with base-n [...]:

This might be easiest to decide when converting individual modules to Material You and seeing which looks better.

trueNAHO avatar Nov 27 '25 22:11 trueNAHO