1{lib, ...}: {
2 options.myUsers = let
3 mkUser = user: {
4 enable = lib.mkEnableOption "${user}.";
5
6 password = lib.mkOption {
7 default = null;
8 description = "Hashed password for ${user}.";
9 type = lib.types.nullOr lib.types.str;
10 };
11
12 passwordFile = lib.mkOption {
13 default = null;
14 description = "Hashed password file for ${user}.";
15 type = lib.types.nullOr lib.types.path;
16 };
17 };
18 in {
19 defaultGroups = lib.mkOption {
20 description = "Default groups for desktop users.";
21 default = [
22 "cdrom"
23 "dialout"
24 "docker"
25 "libvirtd"
26 "lp"
27 "networkmanager"
28 "plugdev"
29 "scanner"
30 "transmission"
31 "video"
32 "wheel"
33 ];
34 };
35
36 root.enable =
37 lib.mkEnableOption "root user configuration."
38 // {
39 default = true;
40 };
41 ayla = mkUser "ayla";
42 };
43}