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