1{ 2 config, 3 lib, 4 pkgs, 5 ... 6}: 7 8with lib; 9 10let 11 xcfg = config.services.xserver; 12 cfg = xcfg.desktopManager.cde; 13in 14{ 15 options.services.xserver.desktopManager.cde = { 16 enable = mkEnableOption "Common Desktop Environment"; 17 18 extraPackages = mkOption { 19 type = with types; listOf package; 20 default = with pkgs.xorg; [ 21 xclock 22 bitmap 23 xlsfonts 24 xfd 25 xrefresh 26 xload 27 xwininfo 28 xdpyinfo 29 xwd 30 xwud 31 ]; 32 defaultText = literalExpression '' 33 with pkgs.xorg; [ 34 xclock bitmap xlsfonts xfd xrefresh xload xwininfo xdpyinfo xwd xwud 35 ] 36 ''; 37 description = '' 38 Extra packages to be installed system wide. 39 ''; 40 }; 41 }; 42 43 config = mkIf (xcfg.enable && cfg.enable) { 44 environment.systemPackages = cfg.extraPackages; 45 46 services.rpcbind.enable = true; 47 48 services.xinetd.enable = true; 49 services.xinetd.services = [ 50 { 51 name = "cmsd"; 52 protocol = "udp"; 53 user = "root"; 54 server = "${pkgs.cdesktopenv}/bin/rpc.cmsd"; 55 extraConfig = '' 56 type = RPC UNLISTED 57 rpc_number = 100068 58 rpc_version = 2-5 59 only_from = 127.0.0.1/0 60 ''; 61 } 62 ]; 63 64 users.groups.mail = { }; 65 security.wrappers = { 66 dtmail = { 67 setgid = true; 68 owner = "root"; 69 group = "mail"; 70 source = "${pkgs.cdesktopenv}/bin/dtmail"; 71 }; 72 }; 73 74 system.activationScripts.setup-cde = '' 75 mkdir -p /var/dt/{tmp,appconfig/appmanager} 76 chmod a+w+t /var/dt/{tmp,appconfig/appmanager} 77 ''; 78 79 services.xserver.desktopManager.session = [ 80 { 81 name = "CDE"; 82 start = '' 83 exec ${pkgs.cdesktopenv}/bin/Xsession 84 ''; 85 } 86 ]; 87 }; 88 89 meta.maintainers = [ ]; 90}