vuls: init at 0.27.0
[NixPkgs.git] / nixos / modules / services / x11 / display-managers / lightdm-greeters / mini.nix
blob05e21c7211fa28b2d4aaab1939c0a6548778470f
1 { config, lib, pkgs, ... }:
3 with lib;
5 let
7   dmcfg = config.services.xserver.displayManager;
8   ldmcfg = dmcfg.lightdm;
9   cfg = ldmcfg.greeters.mini;
11   miniGreeterConf = pkgs.writeText "lightdm-mini-greeter.conf"
12     ''
13     [greeter]
14     user = ${cfg.user}
15     show-password-label = true
16     password-label-text = Password:
17     invalid-password-text = Invalid Password
18     show-input-cursor = true
19     password-alignment = right
21     [greeter-hotkeys]
22     mod-key = meta
23     shutdown-key = s
24     restart-key = r
25     hibernate-key = h
26     suspend-key = u
28     [greeter-theme]
29     font = Sans
30     font-size = 1em
31     font-weight = bold
32     font-style = normal
33     text-color = "#080800"
34     error-color = "#F8F8F0"
35     background-image = "${ldmcfg.background}"
36     background-color = "#1B1D1E"
37     window-color = "#F92672"
38     border-color = "#080800"
39     border-width = 2px
40     layout-space = 15
41     password-color = "#F8F8F0"
42     password-background-color = "#1B1D1E"
43     password-border-color = "#080800"
44     password-border-width = 2px
46     ${cfg.extraConfig}
47     '';
51   options = {
53     services.xserver.displayManager.lightdm.greeters.mini = {
55       enable = mkOption {
56         type = types.bool;
57         default = false;
58         description = ''
59           Whether to enable lightdm-mini-greeter as the lightdm greeter.
61           Note that this greeter starts only the default X session.
62           You can configure the default X session using
63           [](#opt-services.displayManager.defaultSession).
64         '';
65       };
67       user = mkOption {
68         type = types.str;
69         default = "root";
70         description = ''
71           The user to login as.
72         '';
73       };
75       extraConfig = mkOption {
76         type = types.lines;
77         default = "";
78         description = ''
79           Extra configuration that should be put in the lightdm-mini-greeter.conf
80           configuration file.
81         '';
82       };
84     };
86   };
88   config = mkIf (ldmcfg.enable && cfg.enable) {
90     services.xserver.displayManager.lightdm.greeters.gtk.enable = false;
92     services.xserver.displayManager.lightdm.greeter = mkDefault {
93       package = pkgs.lightdm-mini-greeter.xgreeters;
94       name = "lightdm-mini-greeter";
95     };
97     environment.etc."lightdm/lightdm-mini-greeter.conf".source = miniGreeterConf;
99   };