diff options
author | Tim Keller <tjk@tjkeller.xyz> | 2025-08-26 21:36:16 -0500 |
---|---|---|
committer | Tim Keller <tjk@tjkeller.xyz> | 2025-08-26 21:36:16 -0500 |
commit | c3c3d6f1fd19a5da015c9a9d3ae5c54f2d177be0 (patch) | |
tree | 559a0d9385df907f471b9bdd2bf708ec4650c718 /archetypes/users/primary.nix | |
parent | 125313aabedb17516d735a718968bfad1289f12b (diff) | |
download | nixos-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/primary.nix')
-rw-r--r-- | archetypes/users/primary.nix | 37 |
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; + }; + }; +} |