about summary refs log tree commit diff
path: root/nixos
diff options
context:
space:
mode:
authorPeter Simons <simons@cryp.to>2015-02-03 11:52:09 +0100
committerPeter Simons <simons@cryp.to>2015-02-03 11:52:09 +0100
commitb7ecd5e72920bafcb79d759d925fd120cece6558 (patch)
treeda2d2fffdf6638ca83b727eefb883ca7e086cb38 /nixos
parent003896dfe7665cfb4ceb2fff28c91d1bfa946fbb (diff)
parentb7bb524f04c9e31c19d19086d1af0eda7d2f4ca8 (diff)
downloadnixlib-b7ecd5e72920bafcb79d759d925fd120cece6558.tar
nixlib-b7ecd5e72920bafcb79d759d925fd120cece6558.tar.gz
nixlib-b7ecd5e72920bafcb79d759d925fd120cece6558.tar.bz2
nixlib-b7ecd5e72920bafcb79d759d925fd120cece6558.tar.lz
nixlib-b7ecd5e72920bafcb79d759d925fd120cece6558.tar.xz
nixlib-b7ecd5e72920bafcb79d759d925fd120cece6558.tar.zst
nixlib-b7ecd5e72920bafcb79d759d925fd120cece6558.zip
Merge pull request #5025 from abbradar/xmonad-wrapper
nixos/xmonad: make a wrapper
Diffstat (limited to 'nixos')
-rw-r--r--nixos/modules/services/x11/window-managers/xmonad.nix29
1 files changed, 15 insertions, 14 deletions
diff --git a/nixos/modules/services/x11/window-managers/xmonad.nix b/nixos/modules/services/x11/window-managers/xmonad.nix
index 74acfc219759..c922ca7848d1 100644
--- a/nixos/modules/services/x11/window-managers/xmonad.nix
+++ b/nixos/modules/services/x11/window-managers/xmonad.nix
@@ -3,11 +3,12 @@
 let
   inherit (lib) mkOption mkIf optionals literalExample;
   cfg = config.services.xserver.windowManager.xmonad;
-  xmonadEnv = cfg.haskellPackages.ghcWithPackages(self: [
-    self.xmonad
-  ] ++ optionals cfg.enableContribAndExtras [ self.xmonadContrib self.xmonadExtras]
-    ++ optionals (cfg.extraPackages != null) (cfg.extraPackages self));
-  xmessage = pkgs.xlibs.xmessage;
+  xmonad = pkgs.xmonad-with-packages.override {
+    ghcWithPackages = cfg.haskellPackages.ghcWithPackages;
+    packages = self: cfg.extraPackages self ++
+                     optionals cfg.enableContribAndExtras
+                     [ self.xmonad-contrib self.xmonad-extras ];
+  };
 in
 {
   options = {
@@ -19,9 +20,9 @@ in
       };
 
       haskellPackages = mkOption {
-        default = pkgs.haskellPackages;
-        defaultText = "pkgs.haskellPackages";
-        example = literalExample "pkgs.haskellPackages_ghc701";
+        default = pkgs.haskellngPackages;
+        defaultText = "pkgs.haskellngPackages";
+        example = literalExample "pkgs.haskell-ng.packages.ghc784";
         description = ''
           haskellPackages used to build Xmonad and other packages.
           This can be used to change the GHC version used to build
@@ -31,17 +32,17 @@ in
       };
 
       extraPackages = mkOption {
-        default = null;
+        default = self: [];
         example = literalExample ''
           haskellPackages: [
-            haskellPackages.xmonadContrib
-            haskellPackages.monadLogger
+            haskellPackages.xmonad-contrib
+            haskellPackages.monad-logger
           ]
         '';
         description = ''
           Extra packages available to ghc when rebuilding Xmonad. The
           value must be a function which receives the attrset defined
-          in <varname>haskellpackages</varname> as the sole argument.
+          in <varname>haskellPackages</varname> as the sole argument.
         '';
       };
 
@@ -58,12 +59,12 @@ in
       session = [{
         name = "xmonad";
         start = ''
-          XMONAD_GHC=${xmonadEnv}/bin/ghc XMONAD_XMESSAGE=${xmessage}/bin/xmessage xmonad &
+          ${xmonad}/bin/xmonad &
           waitPID=$!
         '';
       }];
     };
 
-    environment.systemPackages = [ cfg.haskellPackages.xmonad ];
+    environment.systemPackages = [ xmonad ];
   };
 }