From 6e802e5d75107070be6021886ec38b79b6ceeb92 Mon Sep 17 00:00:00 2001 From: Nicolas Pierron Date: Thu, 25 Jun 2009 22:08:03 +0000 Subject: [PATCH] Replace extraPackages by x11Packages for all windows/desktop managers. -> No longer install graphical packages if the xserver is disabled. -> avoid duplication of "mkIf config.services.xserver.enable". svn path=/nixos/branches/modular-nixos/; revision=16044 --- modules/services/x11/xserver/default.nix | 13 ++++++++++++- .../x11/xserver/desktop-managers/default.nix | 7 ++++--- .../services/x11/xserver/desktop-managers/gnome.nix | 2 +- .../xserver/desktop-managers/kde-environment.nix | 7 ++++--- .../services/x11/xserver/desktop-managers/kde.nix | 9 +++++---- .../services/x11/xserver/desktop-managers/kde4.nix | 9 +++++---- .../services/x11/xserver/desktop-managers/xterm.nix | 4 ++-- .../services/x11/xserver/window-managers/compiz.nix | 2 +- .../services/x11/xserver/window-managers/kwm.nix | 2 +- .../x11/xserver/window-managers/metacity.nix | 2 +- .../services/x11/xserver/window-managers/twm.nix | 2 +- .../services/x11/xserver/window-managers/wmii.nix | 2 +- 12 files changed, 38 insertions(+), 23 deletions(-) diff --git a/modules/services/x11/xserver/default.nix b/modules/services/x11/xserver/default.nix index acaea17649c3..3e49420778e3 100644 --- a/modules/services/x11/xserver/default.nix +++ b/modules/services/x11/xserver/default.nix @@ -277,6 +277,15 @@ let }; }; + + environment.x11Packages = mkOption { + default = []; + type = types.list types.packages; + description = " + List of packages added to the system when the xserver is + activated. (). + "; + }; }; in @@ -505,7 +514,7 @@ mkIf cfg.enable { } ]; - extraPackages = [ + x11Packages = [ xorg.xrandr xorg.xrdb xorg.setxkbmap @@ -514,6 +523,8 @@ mkIf cfg.enable { ++ optional (videoDriver == "nvidia") [ kernelPackages.nvidia_x11 ]; + + extraPackages = config.environment.x11Packages; }; services = { diff --git a/modules/services/x11/xserver/desktop-managers/default.nix b/modules/services/x11/xserver/desktop-managers/default.nix index 3de3fa257921..c40266f99d75 100644 --- a/modules/services/x11/xserver/desktop-managers/default.nix +++ b/modules/services/x11/xserver/desktop-managers/default.nix @@ -2,7 +2,8 @@ let inherit (pkgs.lib) mkOption mergeOneOption mkIf filter optionalString any; - cfg = config.services.xserver.desktopManager; + xcfg = config.services.xserver; + cfg = xcfg.desktopManager; # Whether desktop manager `d' is capable of setting a background. # If it isn't, the `feh' program is used as a fallback. @@ -69,7 +70,7 @@ in }; }; - environment = mkIf (config.services.xserver.enable && cfg.session.needBGPackages) { - extraPackages = [ pkgs.feh ]; + environment = mkIf cfg.session.needBGPackages { + x11Packages = [ pkgs.feh ]; }; } diff --git a/modules/services/x11/xserver/desktop-managers/gnome.nix b/modules/services/x11/xserver/desktop-managers/gnome.nix index d6fa064ef114..3fa82bae2ba6 100644 --- a/modules/services/x11/xserver/desktop-managers/gnome.nix +++ b/modules/services/x11/xserver/desktop-managers/gnome.nix @@ -38,7 +38,7 @@ mkIf cfg.enable { }; environment = { - extraPackages = [ + x11Packages = [ gnome.gnometerminal gnome.GConf gnome.gconfeditor diff --git a/modules/services/x11/xserver/desktop-managers/kde-environment.nix b/modules/services/x11/xserver/desktop-managers/kde-environment.nix index 5d9ab3ae5a30..3a4b8b22d360 100644 --- a/modules/services/x11/xserver/desktop-managers/kde-environment.nix +++ b/modules/services/x11/xserver/desktop-managers/kde-environment.nix @@ -1,7 +1,7 @@ {pkgs, config, ...}: let - inherit (pkgs.lib) mkOption mkIf; + inherit (pkgs.lib) mkOption mkIf types; kdePackages = config.environment.kdePackages; options = { @@ -25,6 +25,7 @@ let kdePackages = mkOption { default = []; example = [ pkgs.kde42.kdegames ]; + type = types.list types.packages; description = '' Additional KDE packages to be used when you use KDE as a desktop manager. By default, you only get the KDE base packages. @@ -36,11 +37,11 @@ let }; in -mkIf (kdePackages != []) { +mkIf (kdePackages != [] && config.services.xserver.enable) { require = options; environment = { - extraPackages = kdePackages; + x11Packages = kdePackages; shellInit = '' export KDEDIRS="${pkgs.lib.concatStringsSep ":" kdePackages}" diff --git a/modules/services/x11/xserver/desktop-managers/kde.nix b/modules/services/x11/xserver/desktop-managers/kde.nix index f8fb9f534f5e..45c4c464f9a3 100644 --- a/modules/services/x11/xserver/desktop-managers/kde.nix +++ b/modules/services/x11/xserver/desktop-managers/kde.nix @@ -2,8 +2,9 @@ let inherit (pkgs.lib) mkOption mkIf; - cfg = config.services.xserver.desktopManager.kde; - xorg = config.services.xserver.package; + xcfg = config.services.xserver; + cfg = xcfg.desktopManager.kde; + xorg = xcfg.package; options = { services = { xserver = { desktopManager = { @@ -18,7 +19,7 @@ let }; }; }; }; in -mkIf cfg.enable { +mkIf (xcfg.enable && cfg.enable) { require = [ options @@ -63,7 +64,7 @@ mkIf cfg.enable { pkgs.kdebase ]; - extraPackages = [ + x11Packages = [ xorg.xset # used by startkde, non-essential ]; diff --git a/modules/services/x11/xserver/desktop-managers/kde4.nix b/modules/services/x11/xserver/desktop-managers/kde4.nix index 78cf90e33e40..f8b66e2840da 100644 --- a/modules/services/x11/xserver/desktop-managers/kde4.nix +++ b/modules/services/x11/xserver/desktop-managers/kde4.nix @@ -2,8 +2,9 @@ let inherit (pkgs.lib) mkOption mkIf; - cfg = config.services.xserver.desktopManager.kde4; - xorg = config.services.xserver.package; + xcfg = config.services.xserver; + cfg = xcfg.desktopManager.kde4; + xorg = xcfg.package; options = { services = { xserver = { desktopManager = { @@ -18,7 +19,7 @@ let }; }; }; }; in -mkIf cfg.enable { +mkIf (xcfg.enable && cfg.enable) { require = [ options @@ -57,7 +58,7 @@ mkIf cfg.enable { pkgs.shared_mime_info ]; - extraPackages = [ + x11Packages = [ xorg.xmessage # so that startkde can show error messages pkgs.qt4 # needed for qdbus xorg.xset # used by startkde, non-essential diff --git a/modules/services/x11/xserver/desktop-managers/xterm.nix b/modules/services/x11/xserver/desktop-managers/xterm.nix index 861d50014781..8524c0c65445 100644 --- a/modules/services/x11/xserver/desktop-managers/xterm.nix +++ b/modules/services/x11/xserver/desktop-managers/xterm.nix @@ -17,7 +17,7 @@ let in -mkIf (config.services.xserver.enable && cfg.enable) { +mkIf cfg.enable { require = options; services = { @@ -37,7 +37,7 @@ mkIf (config.services.xserver.enable && cfg.enable) { }; environment = { - extraPackages = [ + x11Packages = [ pkgs.xterm ]; }; diff --git a/modules/services/x11/xserver/window-managers/compiz.nix b/modules/services/x11/xserver/window-managers/compiz.nix index e99c3adb5b45..bf1595826635 100644 --- a/modules/services/x11/xserver/window-managers/compiz.nix +++ b/modules/services/x11/xserver/window-managers/compiz.nix @@ -59,6 +59,6 @@ mkIf cfg.enable { }; environment = { - extraPackages = [ pkgs.compiz ]; + x11Packages = [ pkgs.compiz ]; }; } diff --git a/modules/services/x11/xserver/window-managers/kwm.nix b/modules/services/x11/xserver/window-managers/kwm.nix index db8696c510d4..3d946f213a33 100644 --- a/modules/services/x11/xserver/window-managers/kwm.nix +++ b/modules/services/x11/xserver/window-managers/kwm.nix @@ -38,7 +38,7 @@ mkIf cfg.enable { }; environment = { - extraPackages = [ + x11Packages = [ pkgs.kdelibs pkgs.kdebase ]; diff --git a/modules/services/x11/xserver/window-managers/metacity.nix b/modules/services/x11/xserver/window-managers/metacity.nix index dc1ff911d659..ea1dd5a3bde1 100644 --- a/modules/services/x11/xserver/window-managers/metacity.nix +++ b/modules/services/x11/xserver/window-managers/metacity.nix @@ -44,6 +44,6 @@ mkIf cfg.enable { }; environment = { - extraPackages = [ gnome.metacity ]; + x11Packages = [ gnome.metacity ]; }; } diff --git a/modules/services/x11/xserver/window-managers/twm.nix b/modules/services/x11/xserver/window-managers/twm.nix index f26be48776cf..9dc3bea80934 100644 --- a/modules/services/x11/xserver/window-managers/twm.nix +++ b/modules/services/x11/xserver/window-managers/twm.nix @@ -39,6 +39,6 @@ mkIf cfg.enable { }; environment = { - extraPackages = [ xorg.twm ]; + x11Packages = [ xorg.twm ]; }; } diff --git a/modules/services/x11/xserver/window-managers/wmii.nix b/modules/services/x11/xserver/window-managers/wmii.nix index 191e31af1deb..d1ff72092f14 100644 --- a/modules/services/x11/xserver/window-managers/wmii.nix +++ b/modules/services/x11/xserver/window-managers/wmii.nix @@ -47,7 +47,7 @@ mkIf cfg.enable { }; environment = { - extraPackages = [ + x11Packages = [ pkgs.wmiiSnap ]; };