85 lines
2.8 KiB
Nix
85 lines
2.8 KiB
Nix
# Lua file containing the current colorscheme.
|
|
{ lib, config, inputs, ... }: {
|
|
options.satellite.colorscheme.lua = lib.mkOption {
|
|
type = lib.types.lines;
|
|
description = "Lua file containing the current colorscheme";
|
|
};
|
|
|
|
config.satellite.colorscheme.lua =
|
|
let
|
|
e = import ./korora-lua.nix {
|
|
inherit lib;
|
|
korora = inputs.korora.lib;
|
|
};
|
|
|
|
mkTransparencyTarget = name:
|
|
let
|
|
color = index: "rgba(${
|
|
config.satellite.theming.colors.rgb "base${index}"
|
|
},${
|
|
toString config.stylix.opacity.${name}
|
|
})";
|
|
in
|
|
{
|
|
enabled = config.stylix.opacity.${name} < 1.0;
|
|
value = config.stylix.opacity.${name};
|
|
|
|
base00 = color "00";
|
|
base01 = color "01";
|
|
base02 = color "02";
|
|
base03 = color "03";
|
|
base04 = color "04";
|
|
base05 = color "05";
|
|
base06 = color "06";
|
|
base07 = color "07";
|
|
base08 = color "07";
|
|
base09 = color "09";
|
|
base0A = color "0A";
|
|
base0B = color "0B";
|
|
base0C = color "0C";
|
|
base0D = color "0D";
|
|
base0E = color "0E";
|
|
base0F = color "0F";
|
|
};
|
|
|
|
theme = {
|
|
name = config.lib.stylix.scheme.scheme;
|
|
polarity = config.stylix.polarity or null;
|
|
base00 = config.lib.stylix.scheme.base00;
|
|
base01 = config.lib.stylix.scheme.base01;
|
|
base02 = config.lib.stylix.scheme.base02;
|
|
base03 = config.lib.stylix.scheme.base03;
|
|
base04 = config.lib.stylix.scheme.base04;
|
|
base05 = config.lib.stylix.scheme.base05;
|
|
base06 = config.lib.stylix.scheme.base06;
|
|
base07 = config.lib.stylix.scheme.base07;
|
|
base08 = config.lib.stylix.scheme.base07;
|
|
base09 = config.lib.stylix.scheme.base09;
|
|
base0A = config.lib.stylix.scheme.base0A;
|
|
base0B = config.lib.stylix.scheme.base0B;
|
|
base0C = config.lib.stylix.scheme.base0C;
|
|
base0D = config.lib.stylix.scheme.base0D;
|
|
base0E = config.lib.stylix.scheme.base0E;
|
|
base0F = config.lib.stylix.scheme.base0F;
|
|
# TODO: check if this works with the genetic algorithm
|
|
source = config.stylix.base16Scheme;
|
|
fonts = {
|
|
serif = config.stylix.fonts.serif.name;
|
|
sansSerif = config.stylix.fonts.sansSerif.name;
|
|
monospace = config.stylix.fonts.monospace.name;
|
|
};
|
|
transparency = {
|
|
terminal = mkTransparencyTarget "terminal";
|
|
applications = mkTransparencyTarget "applications";
|
|
desktop = mkTransparencyTarget "desktop";
|
|
popups = mkTransparencyTarget "popups";
|
|
};
|
|
rounding = {
|
|
enable = config.satellite.theming.rounding.enable;
|
|
radius = config.satellite.theming.rounding.radius;
|
|
};
|
|
};
|
|
in
|
|
e.encode theme;
|
|
}
|