diff options
| author | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2025-06-09 17:40:46 +0000 |
|---|---|---|
| committer | Collin Williams <96917990+bluedragon1221@users.noreply.github.com> | 2025-06-09 17:40:46 +0000 |
| commit | a45c4551712c1ba5cb82eaf290f311ab0e8690e4 (patch) | |
| tree | f62b23489fb31f8ea58fef77f99619efd784eb36 /modules/user | |
big changes
Diffstat (limited to 'modules/user')
| -rw-r--r-- | modules/user/home/default.nix | 3 | ||||
| -rw-r--r-- | modules/user/options.nix | 23 | ||||
| -rw-r--r-- | modules/user/system/default.nix | 25 |
3 files changed, 51 insertions, 0 deletions
diff --git a/modules/user/home/default.nix b/modules/user/home/default.nix new file mode 100644 index 0000000..9394bca --- /dev/null +++ b/modules/user/home/default.nix @@ -0,0 +1,3 @@ +{ + home.preferXdgDirectories = true; +} diff --git a/modules/user/options.nix b/modules/user/options.nix new file mode 100644 index 0000000..f5c7a5f --- /dev/null +++ b/modules/user/options.nix @@ -0,0 +1,23 @@ +{ + config, + lib, + ... +}: let + inherit (lib) mkOption types; +in { + options = { + collinux.user = { + name = mkOption { + type = types.str; + }; + password = mkOption { + type = types.str; + description = "hashed password for user"; + }; + isAdmin = mkOption { + type = types.bool; + default = true; + }; + }; + }; +} diff --git a/modules/user/system/default.nix b/modules/user/system/default.nix new file mode 100644 index 0000000..52d8116 --- /dev/null +++ b/modules/user/system/default.nix @@ -0,0 +1,25 @@ +{config, ...}: let + cfg = config.collinux.user; +in { + users.users."${cfg.name}" = { + isNormalUser = true; + description = cfg.name; + extraGroups = + ["networkmanager" "disks"] + ++ ( + if cfg.isAdmin + then ["wheel"] + else [] + ); + hashedPassword = cfg.password; + }; + + hjem.clobberByDefault = true; + hjem.users."${cfg.name}" = { + enable = true; + directory = "/home/${cfg.name}"; + user = cfg.name; + }; + + security.sudo-rs.enable = true; +} |
