about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--common-workstation.nix32
-rw-r--r--modules/module-list.nix1
-rw-r--r--modules/slim/default.nix44
3 files changed, 46 insertions, 31 deletions
diff --git a/common-workstation.nix b/common-workstation.nix
index 5526e4cc..0884d00b 100644
--- a/common-workstation.nix
+++ b/common-workstation.nix
@@ -47,6 +47,7 @@ in {
   };
 
   vuizvui.i3.enable = true;
+  vuizvui.slim.enable = true;
 
   services = {
     openssh = {
@@ -108,37 +109,6 @@ in {
 
       desktopManager.default = "none";
       desktopManager.xterm.enable = false;
-      displayManager.slim.enable = true;
-      displayManager.slim.defaultUser = "aszlig";
-      displayManager.slim.theme = pkgs.stdenv.mkDerivation {
-        name = "nixos-theme-vuizvui";
-        src = pkgs.slimThemes.nixosSlim;
-        phases = [ "unpackPhase" "patchPhase" "installPhase" ];
-        patchPhase = let
-          headFactor = if randrHeads == [] then 1 else lib.length randrHeads;
-          centerLeft = 100 / (headFactor * 2);
-        in ''
-          ${pkgs.imagemagick}/bin/mogrify \
-            -fill '#080010' -draw 'color 0,0 reset' \
-            share/slim/themes/nixos-slim-testing/background.png
-          ${pkgs.imagemagick}/bin/mogrify \
-            -negate -region 100x110+0+0 -negate -fill white -colorize 20% \
-            share/slim/themes/nixos-slim-testing/panel.png
-          sed -i \
-            -e 's/^\([a-z_]\+_x[^0-9]*\)[0-9]\+%/\1${toString centerLeft}%/' \
-            share/slim/themes/nixos-slim-testing/slim.theme
-          cat >> share/slim/themes/nixos-slim-testing/slim.theme <<EOF
-          session_x      ${toString centerLeft}%
-          msg_color      #ffffff
-          username_color #ffffff
-          password_color #ffffff
-          input_color    #ffffff
-          EOF
-        '';
-        installPhase = ''
-          cp -R share/slim/themes/nixos-slim-testing "$out"
-        '';
-      };
     };
   };
 
diff --git a/modules/module-list.nix b/modules/module-list.nix
index 84cd81e1..c04fc681 100644
--- a/modules/module-list.nix
+++ b/modules/module-list.nix
@@ -1,3 +1,4 @@
 [
   ./i3
+  ./slim
 ]
diff --git a/modules/slim/default.nix b/modules/slim/default.nix
new file mode 100644
index 00000000..d8905ed7
--- /dev/null
+++ b/modules/slim/default.nix
@@ -0,0 +1,44 @@
+{ pkgs, config, lib, ... }:
+
+with lib;
+
+let
+  cfg = config.vuizvui.slim;
+  randrHeads = config.services.xserver.xrandrHeads;
+in {
+  options.vuizvui.slim.enable = mkEnableOption "Vuizvui SLiM";
+
+  config.services.xserver.displayManager.slim = mkIf cfg.enable {
+    enable = true;
+    defaultUser = "aszlig";
+    theme = pkgs.stdenv.mkDerivation {
+      name = "nixos-theme-vuizvui";
+      src = pkgs.slimThemes.nixosSlim;
+      phases = [ "unpackPhase" "patchPhase" "installPhase" ];
+      patchPhase = let
+        headFactor = if randrHeads == [] then 1 else lib.length randrHeads;
+        centerLeft = 100 / (headFactor * 2);
+      in ''
+        ${pkgs.imagemagick}/bin/mogrify \
+          -fill '#080010' -draw 'color 0,0 reset' \
+          share/slim/themes/nixos-slim-testing/background.png
+        ${pkgs.imagemagick}/bin/mogrify \
+          -negate -region 100x110+0+0 -negate -fill white -colorize 20% \
+          share/slim/themes/nixos-slim-testing/panel.png
+        sed -i \
+          -e 's/^\([a-z_]\+_x[^0-9]*\)[0-9]\+%/\1${toString centerLeft}%/' \
+          share/slim/themes/nixos-slim-testing/slim.theme
+        cat >> share/slim/themes/nixos-slim-testing/slim.theme <<EOF
+        session_x      ${toString centerLeft}%
+        msg_color      #ffffff
+        username_color #ffffff
+        password_color #ffffff
+        input_color    #ffffff
+        EOF
+      '';
+      installPhase = ''
+        cp -R share/slim/themes/nixos-slim-testing "$out"
+      '';
+    };
+  };
+}