vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / x11 / display-managers / lightdm-greeters / enso-os.nix
blob8975d6fb9f0f726f2ca06b53fb0b67f53f3862aa
1 { config, lib, pkgs, ... }:
3 with lib;
4 let
5   dmcfg = config.services.xserver.displayManager;
6   ldmcfg = dmcfg.lightdm;
7   cfg = ldmcfg.greeters.enso;
9   theme = cfg.theme.package;
10   icons = cfg.iconTheme.package;
11   cursors = cfg.cursorTheme.package;
13   ensoGreeterConf = pkgs.writeText "lightdm-enso-os-greeter.conf" ''
14     [greeter]
15     default-wallpaper=${ldmcfg.background}
16     gtk-theme=${cfg.theme.name}
17     icon-theme=${cfg.iconTheme.name}
18     cursor-theme=${cfg.cursorTheme.name}
19     blur=${toString cfg.blur}
20     brightness=${toString cfg.brightness}
21     ${cfg.extraConfig}
22   '';
23 in {
24   options = {
25     services.xserver.displayManager.lightdm.greeters.enso = {
26       enable = mkOption {
27         type = types.bool;
28         default = false;
29         description = ''
30           Whether to enable enso-os-greeter as the lightdm greeter
31         '';
32       };
34       theme = {
35         package = mkOption {
36           type = types.package;
37           default = pkgs.gnome-themes-extra;
38           defaultText = literalExpression "pkgs.gnome-themes-extra";
39           description = ''
40             The package path that contains the theme given in the name option.
41           '';
42         };
44         name = mkOption {
45           type = types.str;
46           default = "Adwaita";
47           description = ''
48             Name of the theme to use for the lightdm-enso-os-greeter
49           '';
50         };
51       };
53       iconTheme = {
54         package = mkOption {
55           type = types.package;
56           default = pkgs.papirus-icon-theme;
57           defaultText = literalExpression "pkgs.papirus-icon-theme";
58           description = ''
59             The package path that contains the icon theme given in the name option.
60           '';
61         };
63         name = mkOption {
64           type = types.str;
65           default = "ePapirus";
66           description = ''
67             Name of the icon theme to use for the lightdm-enso-os-greeter
68           '';
69         };
70       };
72       cursorTheme = {
73         package = mkOption {
74           type = types.package;
75           default = pkgs.capitaine-cursors;
76           defaultText = literalExpression "pkgs.capitaine-cursors";
77           description = ''
78             The package path that contains the cursor theme given in the name option.
79           '';
80         };
82         name = mkOption {
83           type = types.str;
84           default = "capitane-cursors";
85           description = ''
86             Name of the cursor theme to use for the lightdm-enso-os-greeter
87           '';
88         };
89       };
91       blur = mkOption {
92         type = types.bool;
93         default = false;
94         description = ''
95           Whether or not to enable blur
96         '';
97       };
99       brightness = mkOption {
100         type = types.int;
101         default = 7;
102         description = ''
103           Brightness
104         '';
105       };
107       extraConfig = mkOption {
108         type = types.lines;
109         default = "";
110         description = ''
111           Extra configuration that should be put in the greeter.conf
112           configuration file
113         '';
114       };
115     };
116   };
118   config = mkIf (ldmcfg.enable && cfg.enable) {
119     environment.etc."lightdm/greeter.conf".source = ensoGreeterConf;
121     environment.systemPackages = [
122       cursors
123       icons
124       theme
125     ];
127     services.xserver.displayManager.lightdm = {
128       greeter = mkDefault {
129         package = pkgs.lightdm-enso-os-greeter.xgreeters;
130         name = "pantheon-greeter";
131       };
133       greeters = {
134         gtk = {
135           enable = mkDefault false;
136         };
137       };
138     };
139   };