about summary refs log tree commit diff
path: root/nixos/modules/services/x11/window-managers/xmonad.nix
diff options
context:
space:
mode:
authorDominik Xaver Hörl <hoe.dom@gmx.de>2020-10-10 13:20:04 +0200
committerDominik Xaver Hörl <hoe.dom@gmx.de>2020-10-10 13:20:04 +0200
commit67eb45ddce9d390e1c9f7f8c709d98ad68cb0bfd (patch)
tree496b936b26c60df7f97f184acad64b020ac8245e /nixos/modules/services/x11/window-managers/xmonad.nix
parent1d83d90b39dc02433e166da4ceb604178f0aeee4 (diff)
xmonad: put the correct xmonad binary in PATH
Diffstat (limited to 'nixos/modules/services/x11/window-managers/xmonad.nix')
-rw-r--r--nixos/modules/services/x11/window-managers/xmonad.nix13
1 files changed, 7 insertions, 6 deletions
diff --git a/nixos/modules/services/x11/window-managers/xmonad.nix b/nixos/modules/services/x11/window-managers/xmonad.nix
index dba25da8260ce..1ec26ccb31062 100644
--- a/nixos/modules/services/x11/window-managers/xmonad.nix
+++ b/nixos/modules/services/x11/window-managers/xmonad.nix
@@ -4,13 +4,15 @@ with lib;
 let
   inherit (lib) mkOption mkIf optionals literalExample;
   cfg = config.services.xserver.windowManager.xmonad;
-  xmonad = pkgs.xmonad-with-packages.override {
+
+  xmonad-vanilla = pkgs.xmonad-with-packages.override {
     ghcWithPackages = cfg.haskellPackages.ghcWithPackages;
     packages = self: cfg.extraPackages self ++
                      optionals cfg.enableContribAndExtras
                      [ self.xmonad-contrib self.xmonad-extras ];
   };
-  xmonadBin = pkgs.writers.writeHaskell "xmonad" {
+
+  xmonad-config = pkgs.writers.writeHaskellBin "xmonad" {
     ghc = cfg.haskellPackages.ghc;
     libraries = [ cfg.haskellPackages.xmonad ] ++
                 cfg.extraPackages cfg.haskellPackages ++
@@ -19,6 +21,7 @@ let
     inherit (cfg) ghcArgs;
   } cfg.config;
 
+  xmonad = if (cfg.config != null) then xmonad-config else xmonad-vanilla;
 in
 {
   options = {
@@ -101,10 +104,8 @@ in
     services.xserver.windowManager = {
       session = [{
         name = "xmonad";
-        start = let
-          xmonadCommand = if (cfg.config != null) then xmonadBin else "${xmonad}/bin/xmonad";
-        in ''
-           systemd-cat -t xmonad -- ${xmonadCommand} ${lib.escapeShellArgs cfg.xmonadCliArgs} &
+        start = ''
+           systemd-cat -t xmonad -- ${xmonad}/bin/xmonad ${lib.escapeShellArgs cfg.xmonadCliArgs} &
            waitPID=$!
         '';
       }];