{lib, ...}: { options.myUsers = let mkUser = user: { enable = lib.mkEnableOption "${user}."; password = lib.mkOption { default = null; description = "Hashed password for ${user}."; type = lib.types.nullOr lib.types.str; }; passwordFile = lib.mkOption { default = null; description = "Hashed password file for ${user}."; type = lib.types.nullOr lib.types.path; }; }; in { defaultGroups = lib.mkOption { description = "Default groups for desktop users."; default = [ "cdrom" "dialout" "docker" "libvirtd" "lp" "networkmanager" "plugdev" "scanner" "transmission" "video" "wheel" ]; }; root.enable = lib.mkEnableOption "root user configuration." // { default = true; }; ayla = mkUser "ayla"; }; }