26 lines
1 KiB
Nix
26 lines
1 KiB
Nix
|
{ config, lib, ... }:
|
||
|
let
|
||
|
inherit (config.programs.freetube.settings) baseTheme;
|
||
|
inherit (lib.ctp) mkAccentOpt mkUpper;
|
||
|
cfg = config.programs.freetube.catppuccin;
|
||
|
enable = cfg.enable && config.programs.freetube.enable;
|
||
|
in
|
||
|
{
|
||
|
options.programs.freetube.catppuccin = lib.ctp.mkCatppuccinOpt { name = "freetube"; } // {
|
||
|
accent = mkAccentOpt "FreeTube";
|
||
|
# FreeTube supports two accent colors
|
||
|
secondaryAccent = mkAccentOpt "FreeTube" // {
|
||
|
# Have the secondary accent default to FreeTube's main accent rather than the global Catppuccin accent
|
||
|
# This assumes most users would prefer both accent colors to be the same when only overriding the main one
|
||
|
default = cfg.accent;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
config.programs.freetube.settings = lib.mkIf enable {
|
||
|
# NOTE: For some reason, baseTheme does not capitalize first letter, but the other settings do
|
||
|
baseTheme = "catppuccin${mkUpper cfg.flavor}";
|
||
|
mainColor = mkUpper "${baseTheme}${mkUpper cfg.accent}";
|
||
|
secColor = mkUpper "${baseTheme}${mkUpper cfg.secondaryAccent}";
|
||
|
};
|
||
|
}
|