From a5aeb823f3366065e205c2f0207f89d926269895 Mon Sep 17 00:00:00 2001 From: Gabriel Arazas Date: Tue, 15 Apr 2025 12:23:44 +0800 Subject: [PATCH] nixos/workflows/a-happy-gnome: add module option to configure static workspaces --- .../workflows/a-happy-gnome/default.nix | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/modules/nixos/_private/workflows/a-happy-gnome/default.nix b/modules/nixos/_private/workflows/a-happy-gnome/default.nix index 57b9d987..cbd3a5eb 100644 --- a/modules/nixos/_private/workflows/a-happy-gnome/default.nix +++ b/modules/nixos/_private/workflows/a-happy-gnome/default.nix @@ -192,6 +192,8 @@ in { default = true; }; + enableStaticWorkspace = lib.mkEnableOption "static workspaces configuration for PaperWM"; + winprops = lib.mkOption { type = let inherit (lib.types) listOf; @@ -321,13 +323,24 @@ in { let mkWorkspaceConfig = name: value: lib.nameValuePair "org/gnome/shell/extensions/paperwm/workspaces/${name}" value; + + workspaces = lib.attrNames cfg.paperwm.workspaces; in { - "org/gnome/shell/extensions/paperwm/workspaces".list = - lib.attrNames cfg.paperwm.workspaces; + "org/gnome/shell/extensions/paperwm/workspaces".list = workspaces; } // lib.mapAttrs' mkWorkspaceConfig cfg.paperwm.workspaces )) + + (lib.mkIf cfg.paperwm.enableStaticWorkspace { + "org/gnome/mutter/dynamic-workspaces" = false; + + "org/gnome/desktop/wm/preferences/num-workspaces" = + let + workspaces = lib.attrNames cfg.paperwm.workspaces; + in + lib.gvariant.mkInt32 (lib.length workspaces); + }) ]; }; };