about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--modules/user/aszlig/services/i3/default.nix17
-rw-r--r--tests/aszlig/i3.nix10
2 files changed, 18 insertions, 9 deletions
diff --git a/modules/user/aszlig/services/i3/default.nix b/modules/user/aszlig/services/i3/default.nix
index 7b578026..093ac2df 100644
--- a/modules/user/aszlig/services/i3/default.nix
+++ b/modules/user/aszlig/services/i3/default.nix
@@ -20,15 +20,17 @@ let
   headModifier = if cfg.reverseHeads then reverseList else id;
   getHeadAt = elemAt (headModifier xrandrHeads);
 
+  mkSwitchTo = number: "$mod+${if number == 10 then "0" else toString number}";
+
   mkDefaultWorkspace = number: numberSymbol: {
     name = toString number;
-    value = mkDefault {
-      label = null;
-      labelPrefix = "${toString number}: ";
-      keys.switchTo = "$mod+${if number == 10 then "0" else toString number}";
-      keys.moveTo = "$mod+Shift+${numberSymbol}";
-      head = if headCount == 0 then null
-             else getHeadAt ((number - (excessWs + 1)) / wsPerHead);
+    value = {
+      label = mkDefault null;
+      labelPrefix = mkDefault "${toString number}: ";
+      keys.switchTo = mkDefault (mkSwitchTo number);
+      keys.moveTo = mkDefault "$mod+Shift+${numberSymbol}";
+      head = if headCount == 0 then mkDefault null
+             else mkDefault (getHeadAt ((number - (excessWs + 1)) / wsPerHead));
     };
   };
 
@@ -71,7 +73,6 @@ in
 
     workspaces = mkOption {
       type = types.attrsOf (types.submodule (import ./workspace.nix));
-      default = listToAttrs (imap mkDefaultWorkspace wsNumberSymbols);
       description = ''
         Workspace to monitor assignment.
 
diff --git a/tests/aszlig/i3.nix b/tests/aszlig/i3.nix
index c6b84b76..408a476d 100644
--- a/tests/aszlig/i3.nix
+++ b/tests/aszlig/i3.nix
@@ -7,7 +7,15 @@
     imports = [ <nixpkgs/nixos/tests/common/x11.nix> ];
 
     vuizvui.user.aszlig.profiles.base.enable = true;
-    vuizvui.user.aszlig.services.i3.enable = true;
+
+    vuizvui.user.aszlig.services.i3 = {
+      enable = true;
+
+      workspaces."1" = {
+        label = "first";
+        assign = lib.singleton { class = "^test\$"; };
+      };
+    };
 
     services.xserver.windowManager.default = lib.mkForce "i3";
     /* XXX */