From c3c3d6f1fd19a5da015c9a9d3ae5c54f2d177be0 Mon Sep 17 00:00:00 2001 From: Tim Keller Date: Tue, 26 Aug 2025 21:36:16 -0500 Subject: reogranize files more only working on optiplex for now prepare for home manager refactoring --- archetypes/users/primary.nix | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 archetypes/users/primary.nix (limited to 'archetypes/users/primary.nix') 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; + }; + }; +} -- cgit v1.2.3