zaphyra's git: nixfiles

zaphyra's nixfiles

1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
72 
73 
74 
{
  config,
  lib,
  pkgs,
  ...
}:
let
  inherit (lib) types;
  cfg = config.common.services.greetd;

in
{

  options.common.services.greetd = {
    enable = lib.mkEnableOption "greetd";
    autoLogin = {
      enable = lib.mkOption {
        type = types.bool;
        default = false;
      };
      user = lib.mkOption { type = types.str; };
      command = lib.mkOption { type = types.str; };
    };
  };

  config = lib.mkIf cfg.enable {
    security.pam.services.greetd.fprintAuth = false;

    common.configure.persist.system.dirs = [
      {
        directory = "/var/cache/tuigreet";
        mode = "755";
        user = "greeter";
        group = "greeter";
      }
    ];

    systemd.tmpfiles.settings."greetd" = {
      "/var/cache/tuigreet" = {
        d = {
          mode = "755";
          user = "greeter";
          group = "greeter";
        };
      };
    };

    services.greetd = {
      enable = true;
      restart = true;
      useTextGreeter = true;
      settings = {
        initial_session = lib.mkIf cfg.autoLogin.enable { inherit (cfg.autoLogin) user command; };
        default_session = {
          user = "greeter";
          command = lib.concatStringsSep " " [
            (lib.getExe pkgs.tuigreet)
            "--no-xsession-wrapper"
            "--remember"
            "--remember-session"
            "--time"
            "--user-menu"
            "--asterisks"
            "--power-shutdown"
            "'systemctl poweroff'"
            "--power-reboot"
            "'systemctl reboot'"
          ];
        };
      };
    };
  };

}