diff --git a/system/options.nix b/system/options.nix index 10f6032ad1a0..8987ab2969ae 100644 --- a/system/options.nix +++ b/system/options.nix @@ -481,6 +481,17 @@ } + { + name = ["services" "xserver" "windowManager"]; + default = "metacity"; + description = " + This option selects the window manager. Available values are + twm (extremely primitive), + metacity, and compiz. + "; + } + + { name = ["services" "httpd" "enable"]; default = false; diff --git a/system/upstart.nix b/system/upstart.nix index eea9b26b3b9f..29c55362b15d 100644 --- a/system/upstart.nix +++ b/system/upstart.nix @@ -120,6 +120,7 @@ import ../upstart-jobs/gather.nix { (import ../upstart-jobs/xserver.nix { inherit config; inherit (pkgs) stdenv writeText lib xterm slim xorg mesa; + inherit (pkgs.gnome) metacity; fontDirectories = import ./fonts.nix {inherit pkgs;}; }) diff --git a/upstart-jobs/xserver.nix b/upstart-jobs/xserver.nix index d5270c0273da..b1743cecf935 100644 --- a/upstart-jobs/xserver.nix +++ b/upstart-jobs/xserver.nix @@ -1,4 +1,4 @@ -{ stdenv, writeText, lib, xorg, mesa, xterm, slim +{ stdenv, writeText, lib, xorg, mesa, xterm, slim, metacity , config @@ -24,6 +24,8 @@ let resolutions = map (res: "\"${toString res.x}x${toString res.y}\"") (getCfg "resolutions"); + windowManager = getCfg "windowManager"; + modules = [ xorg.xorgserver @@ -63,7 +65,11 @@ let clientScript = writeText "xclient" " + ${if windowManager == "twm" then " ${xorg.twm}/bin/twm & + " else if windowManager == "metacity" then " + ${metacity}/bin/metacity & + " else abort ("unknown window manager "+ windowManager)} ${xterm}/bin/xterm -ls ";