diff options
-rw-r--r-- | common-workstation.nix | 32 | ||||
-rw-r--r-- | modules/module-list.nix | 1 | ||||
-rw-r--r-- | modules/slim/default.nix | 44 |
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" + ''; + }; + }; +} |