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