diff --git a/modules/home-manager/gtk.nix b/modules/home-manager/gtk.nix index 4822f074..8cca3fde 100644 --- a/modules/home-manager/gtk.nix +++ b/modules/home-manager/gtk.nix @@ -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 @@ -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" // { @@ -34,7 +35,7 @@ in config = lib.mkIf enable { assertions = [ - (lib.ctp.assertXdgEnabled "gtk") + (ctp.assertXdgEnabled "gtk") ]; gtk = { @@ -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 = [ + "user-theme@gnome-shell-extensions.gcampax.github.com" + ]; + }; + "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"; + }; + }; }; }