summary refs log tree commit diff
path: root/modules/services/x11
diff options
context:
space:
mode:
Diffstat (limited to 'modules/services/x11')
-rw-r--r--modules/services/x11/desktop-managers/gnome.nix59
-rw-r--r--modules/services/x11/desktop-managers/xterm.nix38
-rw-r--r--modules/services/x11/window-managers/default.nix38
-rw-r--r--modules/services/x11/window-managers/kwm.nix46
-rw-r--r--modules/services/x11/window-managers/metacity.nix59
-rw-r--r--modules/services/x11/window-managers/wmii.nix53
6 files changed, 110 insertions, 183 deletions
diff --git a/modules/services/x11/desktop-managers/gnome.nix b/modules/services/x11/desktop-managers/gnome.nix
index 3fa82bae2ba..b0212446ad3 100644
--- a/modules/services/x11/desktop-managers/gnome.nix
+++ b/modules/services/x11/desktop-managers/gnome.nix
@@ -1,47 +1,42 @@
-{pkgs, config, ...}:
+{ config, pkgs, ... }:
+
+with pkgs.lib;
 
 let
-  inherit (pkgs.lib) mkOption mkIf;
+
   cfg = config.services.xserver.desktopManager.gnome;
   gnome = pkgs.gnome;
 
-  options = { services = { xserver = { desktopManager = {
+in
 
-    gnome = {
-      enable = mkOption {
-        default = false;
-        example = true;
-        description = "Enable a gnome terminal as a desktop manager.";
-      };
-    };
+{
 
-  }; }; }; };
-in
+  options = {
 
-mkIf cfg.enable {
-  require = options;
+    services.xserver.desktopManager.gnome.enable = mkOption {
+      default = false;
+      example = true;
+      description = "Enable a gnome terminal as a desktop manager.";
+    };
+
+  };
 
-  services = {
-    xserver = {
+  config = mkIf cfg.enable {
 
-      desktopManager = {
-        session = [{
-          name = "gnome";
-          start = ''
-            ${gnome.gnometerminal}/bin/gnome-terminal -ls &
-            waitPID=$!
-          '';
-        }];
+    services.xserver.desktopManager.session = singleton
+      { name = "gnome";
+        start = ''
+          ${gnome.gnometerminal}/bin/gnome-terminal -ls &
+          waitPID=$!
+        '';
       };
 
-    };
-  };
+    environment.systemPackages =
+      [ gnome.gnometerminal
+        gnome.GConf
+        gnome.gconfeditor
+      ];
 
-  environment = {
-    x11Packages = [
-      gnome.gnometerminal
-      gnome.GConf
-      gnome.gconfeditor
-    ];
   };
+
 }
diff --git a/modules/services/x11/desktop-managers/xterm.nix b/modules/services/x11/desktop-managers/xterm.nix
index 7aa70269dc4..edc61c103ea 100644
--- a/modules/services/x11/desktop-managers/xterm.nix
+++ b/modules/services/x11/desktop-managers/xterm.nix
@@ -1,10 +1,14 @@
-{pkgs, config, ...}:
+{ config, pkgs, ... }:
+
+with pkgs.lib;
 
 let
 
-  inherit (pkgs.lib) mkOption mkIf;
   cfg = config.services.xserver.desktopManager.xterm;
 
+in
+
+{
   options = {
 
     services.xserver.desktopManager.xterm.enable = mkOption {
@@ -15,30 +19,18 @@ let
 
   };
 
-in
-
-mkIf cfg.enable {
-  require = options;
+  config = mkIf cfg.enable {
 
-  services = {
-    xserver = {
-
-      desktopManager = {
-        session = [{
-          name = "xterm";
-          start = ''
-            ${pkgs.xterm}/bin/xterm -ls &
-            waitPID=$!
-          '';
-        }];
+    services.xserver.desktopManager.session = singleton
+      { name = "xterm";
+        start = ''
+          ${pkgs.xterm}/bin/xterm -ls &
+          waitPID=$!
+        '';
       };
 
-    };
-  };
+    environment.systemPackages = [ pkgs.xterm ];
 
-  environment = {
-    x11Packages = [
-      pkgs.xterm
-    ];
   };
+
 }
diff --git a/modules/services/x11/window-managers/default.nix b/modules/services/x11/window-managers/default.nix
index 958bf85817e..c201b789ae4 100644
--- a/modules/services/x11/window-managers/default.nix
+++ b/modules/services/x11/window-managers/default.nix
@@ -1,25 +1,26 @@
-{pkgs, config, ...}:
+{ config, pkgs, ... }:
+
+with pkgs.lib;
 
 let
-  inherit (pkgs.lib) mkOption mergeOneOption any;
   cfg = config.services.xserver.windowManager;
 in
 
 {
-  imports = [
-    ./compiz.nix
-    ./openbox.nix
-    ./kwm.nix
-    ./metacity.nix
-    ./none.nix
-    ./twm.nix
-    ./wmii.nix
-    ./xmonad.nix
-    ./i3.nix
-    ./xbmc.nix
-  ];
+  imports =
+    [ ./compiz.nix
+      ./openbox.nix
+      ./metacity.nix
+      ./none.nix
+      ./twm.nix
+      ./wmii.nix
+      ./xmonad.nix
+      ./i3.nix
+      ./xbmc.nix
+    ];
 
   options = {
+
     services.xserver.windowManager = {
 
       session = mkOption {
@@ -28,11 +29,11 @@ in
           name = "wmii";
           start = "...";
         }];
-        description = "
+        description = ''
           Internal option used to add some common line to window manager
           scripts before forwarding the value to the
           <varname>displayManager</varname>.
-        ";
+        '';
         apply = map (d: d // {
           manage = "window";
         });
@@ -41,9 +42,7 @@ in
       default = mkOption {
         default = "none";
         example = "wmii";
-        description = "
-          Default window manager loaded if none have been chosen.
-        ";
+        description = "Default window manager loaded if none have been chosen.";
         merge = mergeOneOption;
         apply = defaultWM:
           if any (w: w.name == defaultWM) cfg.session then
@@ -53,6 +52,7 @@ in
       };
 
     };
+
   };
 
   config = {
diff --git a/modules/services/x11/window-managers/kwm.nix b/modules/services/x11/window-managers/kwm.nix
deleted file mode 100644
index 6488ce3d324..00000000000
--- a/modules/services/x11/window-managers/kwm.nix
+++ /dev/null
@@ -1,46 +0,0 @@
-{pkgs, config, ...}:
-
-let
-  inherit (pkgs.lib) mkOption mkIf;
-  cfg = config.services.xserver.windowManager.kwm;
-
-  option = { services = { xserver = { windowManager = {
-
-    kwm = {
-      enable = mkOption {
-        default = false;
-        example = true;
-        description = "Enable the kwm window manager.";
-      };
-
-    };
-
-  }; }; }; };
-in
-
-mkIf cfg.enable {
-  require = option;
-
-  services = {
-    xserver = {
-
-      windowManager = {
-        session = [{
-          name = "kwm";
-          start = "
-            ${pkgs.kde3.kdebase}/bin/kwin &
-            waitPID=$!
-          ";
-        }];
-      };
-
-    };
-  };
-
-  environment = {
-    x11Packages = [
-      pkgs.kde3.kdelibs
-      pkgs.kde3.kdebase
-    ];
-  };
-}
diff --git a/modules/services/x11/window-managers/metacity.nix b/modules/services/x11/window-managers/metacity.nix
index ea1dd5a3bde..712e2038594 100644
--- a/modules/services/x11/window-managers/metacity.nix
+++ b/modules/services/x11/window-managers/metacity.nix
@@ -1,49 +1,42 @@
-{pkgs, config, ...}:
+{ config, pkgs, ... }:
+
+with pkgs.lib;
 
 let
-  inherit (pkgs.lib) mkOption mkIf;
+
   cfg = config.services.xserver.windowManager.metacity;
   xorg = config.services.xserver.package;
   gnome = pkgs.gnome;
 
-  option = { services = { xserver = { windowManager = {
+in
 
-    metacity = {
-      enable = mkOption {
-        default = false;
-        example = true;
-        description = "Enable the metacity window manager.";
-      };
+{
+  options = {
 
+    services.xserver.windowManager.metacity.enable = mkOption {
+      default = false;
+      example = true;
+      description = "Enable the metacity window manager.";
     };
 
-  }; }; }; };
-in
+  };
 
-mkIf cfg.enable {
-  require = option;
-
-  services = {
-    xserver = {
-
-      windowManager = {
-        session = [{
-          name = "metacity";
-          start = ''
-            env LD_LIBRARY_PATH=${xorg.libX11}/lib:${xorg.libXext}/lib:/usr/lib/
-            # !!! Hack: load the schemas for Metacity.
-            GCONF_CONFIG_SOURCE=xml::~/.gconf ${gnome.GConf}/bin/gconftool-2 \
-              --makefile-install-rule ${gnome.metacity}/etc/gconf/schemas/*.schemas # */
-            ${gnome.metacity}/bin/metacity &
-            waitPID=$!
-          '';
-        }];
+  config = mkIf cfg.enable {
+
+    services.xserver.windowManager.session = singleton
+      { name = "metacity";
+        start = ''
+          env LD_LIBRARY_PATH=${xorg.libX11}/lib:${xorg.libXext}/lib:/usr/lib/
+          # !!! Hack: load the schemas for Metacity.
+          GCONF_CONFIG_SOURCE=xml::~/.gconf ${gnome.GConf}/bin/gconftool-2 \
+            --makefile-install-rule ${gnome.metacity}/etc/gconf/schemas/*.schemas # */
+          ${gnome.metacity}/bin/metacity &
+          waitPID=$!
+        '';
       };
 
-    };
-  };
+    environment.systemPackages = [ gnome.metacity ];
 
-  environment = {
-    x11Packages = [ gnome.metacity ];
   };
+
 }
diff --git a/modules/services/x11/window-managers/wmii.nix b/modules/services/x11/window-managers/wmii.nix
index d1ff72092f1..b61521274fb 100644
--- a/modules/services/x11/window-managers/wmii.nix
+++ b/modules/services/x11/window-managers/wmii.nix
@@ -1,27 +1,27 @@
-{pkgs, config, ...}:
+{ config, pkgs, ... }:
+
+with pkgs.lib;
 
 let
-  inherit (pkgs.lib) mkOption mkIf;
+
   cfg = config.services.xserver.windowManager.wmii;
 
-  option = { services = { xserver = { windowManager = {
+in
 
-    wmii = {
-      enable = mkOption {
-        default = false;
-        example = true;
-        description = "Enable the wmii window manager.";
-      };
+{
+  options = {
+
+    services.xserver.windowManager.wmii.enable = mkOption {
+      default = false;
+      example = true;
+      description = "Enable the wmii window manager.";
     };
 
-  }; }; }; };
-in
+  };
 
-mkIf cfg.enable {
-  require = option;
+  config = mkIf cfg.enable {
 
-  services = {
-    xserver = {
+    services.xserver.windowManager.session = singleton
       # stop wmii by
       #   $wmiir xwrite /ctl quit
       # this will cause wmii exiting with exit code 0
@@ -32,23 +32,16 @@ mkIf cfg.enable {
       # lost and all applications running on X will terminate.
       # Another use case is kill -9 wmii; after rotating screen.
       # Note: we don't like kill for that purpose. But it works (-> subject "wmii and xrandr" on mailinglist)
-      windowManager = {
-        session = [{
-          name = "wmii";
-          start = "
-            while :; do
-              ${pkgs.wmiiSnap}/bin/wmii && break
-            done
-          ";
-        }];
+      { name = "wmii";
+        start = ''
+          while :; do
+            ${pkgs.wmiiSnap}/bin/wmii && break
+          done
+        '';
       };
 
-    };
-  };
+    environment.systemPackages = [ pkgs.wmiiSnap ];
 
-  environment = {
-    x11Packages = [
-      pkgs.wmiiSnap
-    ];
   };
+
 }