diff options
Diffstat (limited to 'modules')
-rw-r--r-- | modules/userdata.nix | 36 |
1 files changed, 31 insertions, 5 deletions
diff --git a/modules/userdata.nix b/modules/userdata.nix index ab14a01..9cd8139 100644 --- a/modules/userdata.nix +++ b/modules/userdata.nix @@ -1,7 +1,21 @@ -{ lib, ... }: +{ config, lib, pkgs, ... }: let inherit (lib) mkOption types mdDoc; + cfg = config.userdata; + + defaultPackages = with pkgs; [ + dig + mtr + nnn + ps_mem + brightnessctl + ]; + defaultPubKeys = [ + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDCeMXhkjm9CabbA/1xdtP9bvFEm8pVXPk66NmI9/VvQ sinan@vex" + "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL8LnyOuPmtKRqAZeHueNN4kfYvpRQVwCivSTq+SZvDU sinan@cez" + ]; + defaultGroups = [ "wheel" ]; in { options.userdata = { @@ -25,13 +39,25 @@ in default = "sinan@firemail.cc"; description = mdDoc "Owner's email"; }; + packages = mkOption { + type = types.listOf types.package; + default = []; + description = mdDoc "Packages in owner's environment"; + }; pubKeys = mkOption { type = types.listOf types.str; description = mdDoc "Owner's public ssh keys"; - default = [ - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIDCeMXhkjm9CabbA/1xdtP9bvFEm8pVXPk66NmI9/VvQ sinan@vex" - "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIL8LnyOuPmtKRqAZeHueNN4kfYvpRQVwCivSTq+SZvDU sinan@cez" - ]; + default = []; }; }; + + config.users.users.${cfg.user} = { + uid = 1000; + isNormalUser = true; + description = cfg.email; + + extraGroups = defaultGroups ++ cfg.groups; + packages = defaultPackages ++ cfg.packages; + openssh.authorizedKeys.keys = defaultPubKeys ++ cfg.pubKeys; + }; } |