1{
2 config,
3 lib,
4 pkgs,
5 ...
6}:
7
8with lib;
9
10let
11
12 xcfg = config.services.xserver;
13 cfg = xcfg.desktopManager.lumina;
14
15in
16
17{
18 meta = {
19 maintainers = teams.lumina.members;
20 };
21
22 options = {
23
24 services.xserver.desktopManager.lumina.enable = mkOption {
25 type = types.bool;
26 default = false;
27 description = "Enable the Lumina desktop manager";
28 };
29
30 };
31
32 config = mkIf cfg.enable {
33
34 services.displayManager.sessionPackages = [
35 pkgs.lumina.lumina
36 ];
37
38 environment.systemPackages = pkgs.lumina.preRequisitePackages ++ pkgs.lumina.corePackages;
39
40 # Link some extra directories in /run/current-system/software/share
41 environment.pathsToLink = [
42 "/share/lumina"
43 # FIXME: modules should link subdirs of `/share` rather than relying on this
44 "/share"
45 ];
46
47 };
48}