grafana-alloy: don't build the frontend twice
[NixPkgs.git] / nixos / modules / services / x11 / desktop-managers / cde.nix
blobae9a8ce2239241959b28fde92f099d8a0e5b8b6f
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
6   xcfg = config.services.xserver;
7   cfg = xcfg.desktopManager.cde;
8 in {
9   options.services.xserver.desktopManager.cde = {
10     enable = mkEnableOption "Common Desktop Environment";
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 = ''
23         Extra packages to be installed system wide.
24       '';
25     };
26   };
28   config = mkIf (xcfg.enable && cfg.enable) {
29     environment.systemPackages = cfg.extraPackages;
31     services.rpcbind.enable = true;
33     services.xinetd.enable = true;
34     services.xinetd.services = [
35       {
36         name = "cmsd";
37         protocol = "udp";
38         user = "root";
39         server = "${pkgs.cdesktopenv}/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     ];
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     };
59     system.activationScripts.setup-cde = ''
60       mkdir -p /var/dt/{tmp,appconfig/appmanager}
61       chmod a+w+t /var/dt/{tmp,appconfig/appmanager}
62     '';
64     services.xserver.desktopManager.session = [
65     { name = "CDE";
66       start = ''
67         exec ${pkgs.cdesktopenv}/bin/Xsession
68       '';
69     }];
70   };
72   meta.maintainers = [ ];