Skip to content

Commit

Permalink
feat(home-manager): add gnomeShellTheme option for gtk (#161)
Browse files Browse the repository at this point in the history
* feat(home-manager/gtk): add gnome option

Add an option to set the gtk theme as gnome shell's theme using the
user-theme gnome extension

* implemented feedbacks

* style(home-manager): format gtk module

---------

Co-authored-by: seth <[email protected]>
  • Loading branch information
c-leri and getchoo authored May 13, 2024
1 parent a2b462f commit 5e0f749
Showing 1 changed file with 23 additions and 2 deletions.
25 changes: 23 additions & 2 deletions modules/home-manager/gtk.nix
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
, ...
}:
let
inherit (lib) ctp mkOption types;
inherit (lib) ctp mkOption mkEnableOption types;
cfg = config.gtk.catppuccin;
enable = cfg.enable && config.gtk.enable;
# "dark" and "light" can be used alongside the regular accents
Expand All @@ -25,6 +25,7 @@ in
default = [ "normal" ];
description = "Catppuccin tweaks for gtk";
};
gnomeShellTheme = mkEnableOption "Catppuccin gtk theme for GNOME Shell";

cursor = ctp.mkCatppuccinOpt "gtk cursors"
// {
Expand All @@ -34,7 +35,7 @@ in

config = lib.mkIf enable {
assertions = [
(lib.ctp.assertXdgEnabled "gtk")
(ctp.assertXdgEnabled "gtk")
];

gtk = {
Expand Down Expand Up @@ -79,5 +80,25 @@ in
"gtk-4.0/gtk.css".source = "${gtk4Dir}/gtk.css";
"gtk-4.0/gtk-dark.css".source = "${gtk4Dir}/gtk-dark.css";
};

home.packages = lib.mkIf cfg.gnomeShellTheme [ pkgs.gnomeExtensions.user-themes ];

dconf.settings = lib.mkIf cfg.gnomeShellTheme {
"org/gnome/shell" = {
disable-user-extensions = false;
enabled-extensions = [
"[email protected]"
];
};
"org/gnome/shell/extensions/user-theme" = {
name = config.gtk.theme.name;
};
"org/gnome/desktop/interface" = {
color-scheme =
if cfg.flavour == "latte"
then "default"
else "prefer-dark";
};
};
};
}

0 comments on commit 5e0f749

Please sign in to comment.