about summary refs log tree commit diff
path: root/modules/user/aszlig/slim/default.nix
diff options
context:
space:
mode:
authoraszlig <aszlig@redmoonstudios.org>2015-03-18 02:46:15 +0100
committeraszlig <aszlig@redmoonstudios.org>2015-03-18 02:46:15 +0100
commite91c0b0c2269a8ab0158863dc1c074daf46001f7 (patch)
treecfb21b6e78bc61de7b653a71db5af06a61951a72 /modules/user/aszlig/slim/default.nix
parent147ee83ee25b0c5d4a0600b12e31d6c994a5a9ca (diff)
modules: Move own stuff into modules/user/aszlig.
Some modules might be generic enough to be included in modules/
directly, but for now, let's just get them out of the way.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
Diffstat (limited to 'modules/user/aszlig/slim/default.nix')
-rw-r--r--modules/user/aszlig/slim/default.nix43
1 files changed, 43 insertions, 0 deletions
diff --git a/modules/user/aszlig/slim/default.nix b/modules/user/aszlig/slim/default.nix
new file mode 100644
index 00000000..ca3ce8c6
--- /dev/null
+++ b/modules/user/aszlig/slim/default.nix
@@ -0,0 +1,43 @@
+{ 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;
+    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"
+      '';
+    };
+  };
+}