From 5041cdddbdf469a496e83f55ea1ea835ec2fc45a Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Sun, 8 Aug 2010 22:45:54 +0000 Subject: [PATCH] * Start of an Xfce desktop manager module. Currently it just starts Xfwm and Terminal. svn path=/nixos/trunk/; revision=23048 --- .../services/x11/desktop-managers/default.nix | 2 +- .../services/x11/desktop-managers/kde4.nix | 3 +- .../services/x11/desktop-managers/xfce.nix | 43 +++++++++++++++++++ 3 files changed, 45 insertions(+), 3 deletions(-) create mode 100644 modules/services/x11/desktop-managers/xfce.nix diff --git a/modules/services/x11/desktop-managers/default.nix b/modules/services/x11/desktop-managers/default.nix index 04fda6d2232..d1343c1c0ec 100644 --- a/modules/services/x11/desktop-managers/default.nix +++ b/modules/services/x11/desktop-managers/default.nix @@ -17,7 +17,7 @@ in # Note: the order in which desktop manager modules are imported here # determines the default: later modules (if enabled) are preferred. # E.g., if KDE is enabled, it supersedes xterm. - imports = [ ./none.nix ./xterm.nix ./gnome.nix ./kde4.nix ]; + imports = [ ./none.nix ./xterm.nix ./xfce.nix ./gnome.nix ./kde4.nix ]; options = { diff --git a/modules/services/x11/desktop-managers/kde4.nix b/modules/services/x11/desktop-managers/kde4.nix index 5f47fa638f0..4b6f770c694 100644 --- a/modules/services/x11/desktop-managers/kde4.nix +++ b/modules/services/x11/desktop-managers/kde4.nix @@ -23,8 +23,7 @@ in default = []; example = [ pkgs.kde4.digikam ]; type = types.list types.package; - description = "Additional KDE 4 programs. Only minimal set is installed by - default."; + description = "Additional KDE 4 programs. Only a minimal set is installed by default."; }; }; diff --git a/modules/services/x11/desktop-managers/xfce.nix b/modules/services/x11/desktop-managers/xfce.nix new file mode 100644 index 00000000000..7403138b70c --- /dev/null +++ b/modules/services/x11/desktop-managers/xfce.nix @@ -0,0 +1,43 @@ +{ config, pkgs, ... }: + +with pkgs.lib; + +let + + xcfg = config.services.xserver; + cfg = xcfg.desktopManager.xfce; + +in + +{ + options = { + + services.xserver.desktopManager.xfce.enable = mkOption { + default = false; + example = true; + description = "Enable the Xfce desktop environment."; + }; + + }; + + + config = mkIf (xcfg.enable && cfg.enable) { + + services.xserver.desktopManager.session = singleton + { name = "xfce"; + bgSupport = true; + start = + '' + ${pkgs.xfce.xfwm4}/bin/xfwm4 --daemon + exec ${pkgs.xfce.terminal}/bin/terminal + ''; + }; + + environment.systemPackages = + [ pkgs.xfce.xfwm4 + pkgs.xfce.terminal + ]; + + }; + +}