From dab1895180c9554abc2ca60d00e106bee393f640 Mon Sep 17 00:00:00 2001 From: Leonardo Santiago Date: Thu, 8 May 2025 00:48:42 -0300 Subject: chore(gnome): rewrite extension logic to be able to more easily enable them separately --- modules/gnome/extensions.nix | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 modules/gnome/extensions.nix (limited to 'modules/gnome/extensions.nix') diff --git a/modules/gnome/extensions.nix b/modules/gnome/extensions.nix new file mode 100644 index 0000000..1127359 --- /dev/null +++ b/modules/gnome/extensions.nix @@ -0,0 +1,33 @@ +{ config, lib, pkgs, ... } : let + inherit (builtins) attrNames attrValues; + cfg = config.santi-modules.gnome; + enabled-extensions = lib.filterAttrs (key: conf: conf.enabled) cfg.extensions; +in { + config = lib.mkIf cfg.enable { + environment.systemPackages = with pkgs; [ + gnome-tweaks + tela-icon-theme + hackneyed + ] ++ map (pkg-name: pkgs.gnomeExtensions.${pkg-name}) + (attrNames enabled-extensions); + santi-modules.gnome.extensions = { + appindicator = { + email = "appindicatorsupport@rgcjonas.gmail.com"; + enabled = true; + }; + x11-gestures = { + email = "x11gestures@joseexposito.github.io"; + enabled = config.santi-modules.has-touchpad; + }; + system-monitor = { + email = "system-monitor@gnome-shell-extensions.gcampax.github.com"; + enabled = true; + }; + }; + home-manager.users.leonardo.dconf.settings = lib.mkMerge ([{ + "org/gnome/shell" = { + enabled-extensions = map (pkg: pkg.email) (attrValues enabled-extensions); + }; + }] ++ (map (pkg: pkg.dconf-settings) (attrValues enabled-extensions))); + }; +} -- cgit v1.2.3