aboutsummaryrefslogtreecommitdiff
path: root/modules/user
diff options
context:
space:
mode:
authorCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-06-09 17:40:46 +0000
committerCollin Williams <96917990+bluedragon1221@users.noreply.github.com>2025-06-09 17:40:46 +0000
commita45c4551712c1ba5cb82eaf290f311ab0e8690e4 (patch)
treef62b23489fb31f8ea58fef77f99619efd784eb36 /modules/user
big changes
Diffstat (limited to 'modules/user')
-rw-r--r--modules/user/home/default.nix3
-rw-r--r--modules/user/options.nix23
-rw-r--r--modules/user/system/default.nix25
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;
+}