nixcfg/modules/darwin/user/default.nix
Harald Hoyer b453062c57 refactor: simplify Nix module inputs and update configurations
Simplified input argument structures across multiple Nix modules by removing unnecessary bindings and standardizing formats. Enabled `system.primaryUser` setting and updated PAM configuration for sudo touch ID authentication. Removed deprecated or unused configurations, including user fields in metacfg and outdated options in some modules.
2025-05-27 13:12:18 +02:00

47 lines
1.3 KiB
Nix

{ lib
, config
, ...
}:
with lib;
with lib.metacfg;
let
common = import ../../common.nix { };
cfg = config.metacfg.user;
# is-linux = pkgs.stdenv.isLinux;
# is-darwin = pkgs.stdenv.isDarwin;
in
{
options.metacfg.user = with types; {
name = mkOpt types.str "harald" "The user account.";
fullName = mkOpt types.str "Harald Hoyer" "The full name of the user.";
email = mkOpt types.str "harald@hoyer.xyz" "The email of the user.";
uid = mkOpt (types.nullOr types.int) 501 "The uid for the user account.";
sshKeys = mkOpt (listOf str) common.defaultSSHKeys "ssh keys";
};
config = {
system.primaryUser = cfg.name;
users.users.${cfg.name} = {
# NOTE: Setting the uid here is required for another
# module to evaluate successfully since it reads
# `users.users.${metacfg.user.name}.uid`.
uid = mkIf (cfg.uid != null) cfg.uid;
openssh.authorizedKeys.keys = cfg.sshKeys;
};
snowfallorg.users.${config.metacfg.user.name}.home.config = {
home = {
file = {
".profile".text = ''
# The default file limit is far too low and throws an error when rebuilding the system.
# See the original with: ulimit -Sa
ulimit -n 4096
'';
};
};
};
};
}