From 1f173fa3c92829cdfd74aa647c9e00c272c7c66b Mon Sep 17 00:00:00 2001 From: Danilo Reyes Date: Sun, 18 Jan 2026 17:20:00 -0600 Subject: [PATCH] gnome extensions multi-user --- environments/gnome.nix | 82 ++++++++++++++++++++++++++---------------- 1 file changed, 52 insertions(+), 30 deletions(-) diff --git a/environments/gnome.nix b/environments/gnome.nix index aacf419..f7fd2f2 100644 --- a/environments/gnome.nix +++ b/environments/gnome.nix @@ -1,38 +1,60 @@ { + config, + inputs, + lib, pkgs, ... }: +let + cfg = config.my.environments.gnome; +in { - qt.enable = true; - services = { - gvfs.enable = true; - displayManager.gdm.enable = true; - desktopManager.gnome.enable = true; + options.my.environments.gnome = { + enable = lib.mkOption { + type = lib.types.bool; + default = true; + description = "Enable GNOME desktop environment"; + }; + users = lib.mkOption { + type = inputs.self.lib.usersOptionType lib; + default = "jawz"; + description = "Users to install GNOME extensions for"; + }; }; - environment.gnome.excludePackages = builtins.attrValues { - inherit (pkgs) - baobab - cheese - epiphany - gnome-characters - gnome-connections - gnome-font-viewer - gnome-photos - # gnome-text-editor - gnome-tour - yelp - gnome-music - totem - ; - }; - users.users.jawz.packages = builtins.attrValues { - inherit (pkgs.gnomeExtensions) - tactile # window manager - freon # hardware temperature monitor - gamemode-shell-extension # I guess I'm a gamer now? - burn-my-windows # special effects for when closing windows - pano # clipboard manager - pop-shell - ; + config = lib.mkIf cfg.enable { + qt.enable = true; + services = { + gvfs.enable = true; + displayManager.gdm.enable = true; + desktopManager.gnome.enable = true; + }; + environment.gnome.excludePackages = builtins.attrValues { + inherit (pkgs) + baobab + cheese + epiphany + gnome-characters + gnome-connections + gnome-font-viewer + gnome-photos + # gnome-text-editor + gnome-tour + yelp + gnome-music + totem + ; + }; + users.users = inputs.self.lib.mkUserPackages lib cfg.users ( + builtins.attrValues { + inherit (pkgs.gnomeExtensions) + tactile # window manager + freon # hardware temperature monitor + gamemode-shell-extension # I guess I'm a gamer now? + burn-my-windows # special effects for when closing windows + pano # clipboard manager + pop-shell + ; + } + ); }; }