Skip to content

Commit 77734b3

Browse files
feat(home-manager): add support for freetube
1 parent 874e668 commit 77734b3

File tree

3 files changed

+26
-0
lines changed

3 files changed

+26
-0
lines changed

modules/home-manager/all-modules.nix

+1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
./fcitx5.nix
1111
./fish.nix
1212
./foot.nix
13+
./freetube.nix
1314
./fuzzel.nix
1415
./fzf.nix
1516
./gh-dash.nix

modules/home-manager/freetube.nix

+24
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{ config, lib, ... }:
2+
let
3+
inherit (lib.ctp) mkAccentOpt mkUpper;
4+
cfg = config.programs.freetube.catppuccin;
5+
enable = cfg.enable && config.programs.freetube.enable;
6+
in
7+
{
8+
options.programs.freetube.catppuccin = lib.ctp.mkCatppuccinOpt { name = "freetube"; } // {
9+
accent = mkAccentOpt "FreeTube";
10+
# FreeTube supports two accent colors
11+
secondaryAccent = mkAccentOpt "FreeTube" // {
12+
# Have the secondary accent default to FreeTube's main accent rather than the global Catppuccin accent
13+
# This assumes most users would prefer both accent colors to be the same when only overriding the main one
14+
default = cfg.accent;
15+
};
16+
};
17+
18+
config.programs.freetube.settings = lib.mkIf enable rec {
19+
# NOTE: For some reason, baseTheme does not capitalize first letter, but the other settings do
20+
baseTheme = "catppuccin${mkUpper cfg.flavor}";
21+
mainColor = mkUpper "${baseTheme}${mkUpper cfg.accent}";
22+
secColor = mkUpper "${baseTheme}${mkUpper cfg.secondaryAccent}";
23+
};
24+
}

tests/home.nix

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
cava.enable = true;
2525
fish.enable = true;
2626
foot.enable = true;
27+
freetube.enable = true;
2728
fuzzel.enable = true;
2829
fzf.enable = true;
2930
gh-dash.enable = true;

0 commit comments

Comments
 (0)