# This is just a library intended solely for this flake. # It is expected to use the nixpkgs library with `lib/default.nix`. { lib }: rec { # This is only used for home-manager users without a NixOS user counterpart. mapHomeManagerUser = user: settings: let homeDirectory = "/home/${user}"; defaultUserConfig = { extraGroups = lib.mkDefault [ "wheel" ]; createHome = lib.mkDefault true; home = lib.mkDefault homeDirectory; isNormalUser = lib.mkForce true; }; in ({ lib, ... }: { home-manager.users."${user}" = { ... }: { imports = [ { home.username = user; home.homeDirectory = homeDirectory; } (getUser "home-manager" user) ]; }; users.users."${user}" = lib.mkMerge [ defaultUserConfig settings ]; }); getUser = type: user: ../users/${type}/${user}; }