Merge pull request 'stylix: use image to generate color scheme with scheme = 'generate-from-image'' (#17) from develop into release-25.11
All checks were successful
Deploy docs / build-and-deploy (push) Successful in 5s
All checks were successful
Deploy docs / build-and-deploy (push) Successful in 5s
Reviewed-on: #17
This commit is contained in:
commit
cff8f40bb0
4 changed files with 15 additions and 14 deletions
|
|
@ -17,6 +17,7 @@ let
|
||||||
"moonfly"
|
"moonfly"
|
||||||
"nord"
|
"nord"
|
||||||
"oxocarbon"
|
"oxocarbon"
|
||||||
|
"generate-from-image"
|
||||||
];
|
];
|
||||||
# schemes names in `pkgs.base16-schemes` that need a suffix
|
# schemes names in `pkgs.base16-schemes` that need a suffix
|
||||||
needsSuffix = [
|
needsSuffix = [
|
||||||
|
|
@ -30,11 +31,6 @@ let
|
||||||
];
|
];
|
||||||
schemeName =
|
schemeName =
|
||||||
if builtins.elem cfg.scheme needsSuffix then "${cfg.scheme}-${cfg.polarity}" else cfg.scheme;
|
if builtins.elem cfg.scheme needsSuffix then "${cfg.scheme}-${cfg.polarity}" else cfg.scheme;
|
||||||
scheme =
|
|
||||||
if builtins.elem cfg.scheme customSchemes then
|
|
||||||
./schemes/${schemeName}.yaml
|
|
||||||
else
|
|
||||||
"${pkgs.base16-schemes}/share/themes/${schemeName}.yaml";
|
|
||||||
|
|
||||||
inherit (lib)
|
inherit (lib)
|
||||||
mkDefault
|
mkDefault
|
||||||
|
|
@ -51,13 +47,13 @@ in
|
||||||
|
|
||||||
options.stylix = {
|
options.stylix = {
|
||||||
scheme = lib.mkOption {
|
scheme = lib.mkOption {
|
||||||
type = types.nullOr types.str;
|
type = types.str;
|
||||||
default = "dracula";
|
default = "dracula";
|
||||||
description = ''
|
description = ''
|
||||||
Base16 color scheme name. Available options are:
|
Base16 color scheme name. Available options are:
|
||||||
${toString validSchemes}
|
${toString validSchemes}
|
||||||
|
|
||||||
Set to `null` to generate a color scheme from `stylix.image`
|
"generate-from-image" generates a color scheme from `stylix.image`
|
||||||
'';
|
'';
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
@ -68,15 +64,16 @@ in
|
||||||
assertion = builtins.elem cfg.scheme validSchemes;
|
assertion = builtins.elem cfg.scheme validSchemes;
|
||||||
message = "Stylix: Invalid colorscheme '${cfg.scheme}'. Available options: ${toString validSchemes}";
|
message = "Stylix: Invalid colorscheme '${cfg.scheme}'. Available options: ${toString validSchemes}";
|
||||||
}
|
}
|
||||||
{
|
|
||||||
assertion = (cfg.scheme != null) || (cfg.image != null);
|
|
||||||
message = "Stylix: You need to set stylix.image if stylix.scheme is `null`";
|
|
||||||
}
|
|
||||||
];
|
];
|
||||||
|
|
||||||
stylix = {
|
stylix = {
|
||||||
autoEnable = mkDefault true;
|
autoEnable = mkDefault true;
|
||||||
base16Scheme = mkIf (cfg.scheme != null) scheme;
|
base16Scheme = mkIf (cfg.scheme != "generate-from-image") (
|
||||||
|
if builtins.elem cfg.scheme customSchemes then
|
||||||
|
./schemes/${schemeName}.yaml
|
||||||
|
else
|
||||||
|
"${pkgs.base16-schemes}/share/themes/${schemeName}.yaml"
|
||||||
|
);
|
||||||
fonts = {
|
fonts = {
|
||||||
monospace = mkDefault {
|
monospace = mkDefault {
|
||||||
package = pkgs.hack-font;
|
package = pkgs.hack-font;
|
||||||
|
|
|
||||||
|
|
@ -4,11 +4,13 @@ let
|
||||||
cfg = config.stylix;
|
cfg = config.stylix;
|
||||||
target = cfg.targets.nixvim;
|
target = cfg.targets.nixvim;
|
||||||
|
|
||||||
inherit (lib) mkIf;
|
inherit (lib) mkIf optionalAttrs;
|
||||||
in
|
in
|
||||||
{
|
{
|
||||||
config = mkIf cfg.enable {
|
config = mkIf cfg.enable {
|
||||||
stylix.targets.nixvim.enable = false;
|
stylix.targets.nixvim.enable = false;
|
||||||
programs.nixvim.colorschemes."${cfg.scheme}".enable = !target.enable;
|
programs.nixvim.colorschemes = optionalAttrs (cfg.scheme != "generate-from-image") {
|
||||||
|
"${cfg.scheme}".enable = !target.enable;
|
||||||
|
};
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@
|
||||||
};
|
};
|
||||||
|
|
||||||
stylix.enable = true;
|
stylix.enable = true;
|
||||||
|
stylix.scheme = "generate-from-image";
|
||||||
|
stylix.image = ./wallpaper.png;
|
||||||
|
|
||||||
home.stateVersion = "25.11";
|
home.stateVersion = "25.11";
|
||||||
}
|
}
|
||||||
|
|
|
||||||
BIN
tests/build/hm-hyprland/wallpaper.png
Normal file
BIN
tests/build/hm-hyprland/wallpaper.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 2.1 MiB |
Loading…
Add table
Add a link
Reference in a new issue