2009-08-21 10:13:27 +00:00
|
|
|
{ config, pkgs, ... }:
|
|
|
|
|
|
|
|
with pkgs.lib;
|
2009-02-22 16:08:46 +00:00
|
|
|
|
|
|
|
let
|
2009-08-21 10:13:27 +00:00
|
|
|
|
2009-06-25 22:08:03 +00:00
|
|
|
xcfg = config.services.xserver;
|
|
|
|
cfg = xcfg.desktopManager.kde4;
|
2009-09-10 12:37:33 +00:00
|
|
|
xorg = pkgs.xorg;
|
2009-02-22 16:08:46 +00:00
|
|
|
|
2009-08-21 10:13:27 +00:00
|
|
|
in
|
2009-02-22 16:08:46 +00:00
|
|
|
|
2009-08-21 10:13:27 +00:00
|
|
|
{
|
|
|
|
options = {
|
2009-02-22 16:08:46 +00:00
|
|
|
|
2009-08-21 10:13:27 +00:00
|
|
|
services.xserver.desktopManager.kde4.enable = mkOption {
|
|
|
|
default = false;
|
|
|
|
example = true;
|
|
|
|
description = "Enable the KDE 4 desktop environment.";
|
|
|
|
};
|
2009-04-11 22:12:02 +00:00
|
|
|
|
2010-05-27 09:35:36 +00:00
|
|
|
environment.kdePackages = mkOption {
|
|
|
|
default = [];
|
2010-08-19 23:07:14 +00:00
|
|
|
example = [ pkgs.kde4.kdesdk ];
|
2010-05-27 09:35:36 +00:00
|
|
|
type = types.list types.package;
|
2010-10-14 14:57:38 +00:00
|
|
|
description = "This option is obsolete. Please use <option>environment.systemPackages</option> instead.";
|
2010-05-27 09:35:36 +00:00
|
|
|
};
|
|
|
|
|
2009-08-21 10:13:27 +00:00
|
|
|
};
|
2009-02-22 16:08:46 +00:00
|
|
|
|
2009-08-21 10:13:27 +00:00
|
|
|
|
|
|
|
config = mkIf (xcfg.enable && cfg.enable) {
|
2009-02-22 16:08:46 +00:00
|
|
|
|
2009-08-21 13:05:45 +00:00
|
|
|
# If KDE 4 is enabled, make it the default desktop manager (unless
|
2009-08-21 10:13:27 +00:00
|
|
|
# overriden by the user's configuration).
|
|
|
|
# !!! doesn't work yet ("Multiple definitions. Only one is allowed
|
|
|
|
# for this option.")
|
2010-09-03 19:10:59 +00:00
|
|
|
# services.xserver.desktopManager.default = mkOverrideTemplate 900 "kde4";
|
2009-08-21 10:13:27 +00:00
|
|
|
|
|
|
|
services.xserver.desktopManager.session = singleton
|
|
|
|
{ name = "kde4";
|
|
|
|
bgSupport = true;
|
|
|
|
start =
|
|
|
|
''
|
2009-02-22 16:08:46 +00:00
|
|
|
# Start KDE.
|
2009-09-13 11:09:58 +00:00
|
|
|
exec ${pkgs.kde4.kdebase_workspace}/bin/startkde
|
2009-02-22 16:08:46 +00:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2010-09-22 23:08:05 +00:00
|
|
|
security.setuidOwners = [ {
|
|
|
|
program = "kcheckpass";
|
|
|
|
source = "${pkgs.kde4.kdebase_workspace}/lib/kde4/libexec/kcheckpass";
|
|
|
|
owner = "root";
|
|
|
|
group = "root";
|
|
|
|
setuid = true;
|
|
|
|
} ];
|
2009-02-22 16:08:46 +00:00
|
|
|
|
2011-03-03 12:00:54 +00:00
|
|
|
environment.systemPackages =
|
|
|
|
[ # temporary workarounds
|
2010-10-25 01:46:30 +00:00
|
|
|
pkgs.shared_desktop_ontologies
|
2011-02-22 16:39:40 +00:00
|
|
|
pkgs.strigi
|
2010-10-25 01:46:30 +00:00
|
|
|
|
2010-05-27 09:35:36 +00:00
|
|
|
pkgs.kde4.kdelibs
|
2009-09-13 11:09:58 +00:00
|
|
|
pkgs.kde4.kdebase
|
|
|
|
pkgs.kde4.kdebase_runtime
|
|
|
|
pkgs.kde4.kdebase_workspace
|
2010-05-27 09:35:36 +00:00
|
|
|
pkgs.kde4.oxygen_icons
|
|
|
|
pkgs.kde4.qt4 # needed for qdbus
|
2009-08-21 10:13:27 +00:00
|
|
|
pkgs.shared_mime_info
|
2010-04-15 15:47:26 +00:00
|
|
|
pkgs.gst_all.gstreamer
|
|
|
|
pkgs.gst_all.gstPluginsBase
|
|
|
|
pkgs.gst_all.gstPluginsGood
|
2010-10-22 13:18:22 +00:00
|
|
|
pkgs.gst_all.gstFfmpeg # for mp3 playback
|
2010-05-27 09:35:36 +00:00
|
|
|
xorg.xmessage # so that startkde can show error messages
|
2009-08-21 10:13:27 +00:00
|
|
|
xorg.xset # used by startkde, non-essential
|
2010-10-14 14:57:38 +00:00
|
|
|
] ++ config.environment.kdePackages;
|
2010-05-27 09:35:36 +00:00
|
|
|
|
2011-03-03 12:00:54 +00:00
|
|
|
environment.pathsToLink = [ "/share" ];
|
2010-05-27 09:35:36 +00:00
|
|
|
|
2011-03-03 12:00:54 +00:00
|
|
|
environment.etc = singleton
|
2009-02-22 16:08:46 +00:00
|
|
|
{ source = "${pkgs.xkeyboard_config}/etc/X11/xkb";
|
|
|
|
target = "X11/xkb";
|
2009-08-21 10:13:27 +00:00
|
|
|
};
|
2011-03-03 12:00:54 +00:00
|
|
|
|
2009-02-22 16:08:46 +00:00
|
|
|
};
|
2009-08-21 10:13:27 +00:00
|
|
|
|
2009-02-22 16:08:46 +00:00
|
|
|
}
|