summaryrefslogtreecommitdiff
path: root/archetypes/users
diff options
context:
space:
mode:
authorTim Keller <tjk@tjkeller.xyz>2025-08-26 21:36:16 -0500
committerTim Keller <tjk@tjkeller.xyz>2025-08-26 21:36:16 -0500
commitc3c3d6f1fd19a5da015c9a9d3ae5c54f2d177be0 (patch)
tree559a0d9385df907f471b9bdd2bf708ec4650c718 /archetypes/users
parent125313aabedb17516d735a718968bfad1289f12b (diff)
downloadnixos-master.tar.xz
nixos-master.zip
reogranize files more only working on optiplex for now prepare for home manager refactoringHEADmaster
Diffstat (limited to 'archetypes/users')
-rw-r--r--archetypes/users/primary.nix37
1 files changed, 37 insertions, 0 deletions
diff --git a/archetypes/users/primary.nix b/archetypes/users/primary.nix
new file mode 100644
index 0000000..a29c3b8
--- /dev/null
+++ b/archetypes/users/primary.nix
@@ -0,0 +1,37 @@
+{ lib, config, pkgs, userDetails, ... }: let
+ cfg = config._archetypes.users.primary;
+in {
+ options._archetypes.users.primary = {
+ enable = lib.mkEnableOption "create primary user";
+ autologin.enable = lib.mkEnableOption "enables getty automatic login";
+ };
+
+ config = lib.mkIf cfg.enable {
+ # Enable zsh
+ programs.zsh.enable = true;
+
+ # Setup normal user
+ users.users.${userDetails.username} = {
+ home = userDetails.home;
+ description = userDetails.fullname;
+ isNormalUser = true;
+ shell = pkgs.zsh;
+ extraGroups = [
+ "nixbld"
+ "video"
+ "wheel"
+ ] ++ lib.optionals config.hardware.i2c.enable [
+ "i2c"
+ ] ++ lib.optionals config.virtualisation.libvirtd.enable [
+ "libvirtd"
+ ] ++ lib.optionals config.virtualisation.docker.enable [
+ "docker"
+ ];
+ };
+
+ # Configure automatic login with getty
+ services.getty = lib.mkIf cfg.autologin.enable {
+ autologinUser = userDetails.username;
+ };
+ };
+}