{ pkgs, home-manager, mkHomeRole, ... }: { mkUser = { name, roles ? [ ] }: let roles_mod = (map (r: mkHomeRole r) roles); in { users.groups.plugdev = { }; fileSystems."/home/${name}/Downloads" = { device = "tmpfs"; fsType = "tmpfs"; options = [ "size=3G" ]; }; users.users.${name} = { isNormalUser = true; extraGroups = [ "wheel" "plugdev" ]; }; home-manager.users.${name}.imports = [ (mkHomeRole "common") ] ++ roles_mod; }; mkHMUser = { name, roles ? [ ] }: let roles_mod = (map (r: mkHomeRole r) roles); in home-manager.lib.homeManagerConfiguration { inherit pkgs; modules = [ { home = { username = name; homeDirectory = if pkgs.stdenv.isLinux then "/home/${name}" else "/Users/${name}"; }; } (mkHomeRole "common") ] ++ roles_mod; }; }