{ config, lib, pkgs, outputs, ... }: let in { imports = [ # Packages with custom configs go here ./brave.nix ./gtk.nix ] ++ (builtins.attrValues outputs.homeManagerModules); home = { username = lib.mkDefault "laozi"; homeDirectory = lib.mkDefault "/home/${config.home.username}"; stateVersion = lib.mkDefault "24.05"; sessionPath = [ "$HOME/.local/bin" ]; sessionVariables = { SHELL = "bash"; }; }; home.packages = builtins.attrValues { inherit (pkgs) # Packages that don't have custom configs go here nix-tree; }; nixpkgs = { overlays = builtins.attrValues outputs.overlays; config = { allowUnfree = true; # Workaround for https://github.com/nix-community/home-manager/issues/2942 allowUnfreePredicate = (_: true); }; }; nix = { package = lib.mkDefault pkgs.nix; settings = { experimental-features = [ "nix-command" "flakes" ]; warn-dirty = false; }; }; programs = { home-manager.enable = true; }; # Nicely reload system units when changing configs systemd.user.startServices = "sd-switch"; }