{ inputs, lib, pkgs, config, outputs, ... }: { imports = [ # home-manager inputs.nix-index-database.hmModules.nix-index # Basic CLI tools and environment ./features/cli ./features/devel ] ++ (builtins.attrValues outputs.homeManagerModules); # Configure nixpkgs nixpkgs = { overlays = builtins.attrValues outputs.overlays; config = { allowUnfree = true; allowUnfreePredicate = (_: true); }; }; # Configure nix nix = { package = lib.mkDefault pkgs.nixVersions.nix_2_22; settings = { experimental-features = [ "nix-command" "flakes" ]; warn-dirty = false; }; }; # Add some additional packages for Nix-centric development home.packages = with pkgs; [ # formatting nixpkgs-fmt nixfmt-classic # inspecting derivations nix-tree # lsps nil nixd # once-off command execution comma ]; programs = { home-manager.enable = true; }; programs.git = { enable = true; userEmail = "shadows@with.al"; userName = "liv"; extraConfig = { init.defaultBranch = "main"; pull.rebase = true; }; }; programs.jujutsu = { enable = true; settings = { user.name = "liv"; user.email = "shadows@with.al"; ui.paginate = "never"; }; }; home = { username = lib.mkDefault "lu"; homeDirectory = lib.mkDefault "/home/${config.home.username}"; stateVersion = lib.mkDefault "24.05"; sessionPath = [ "$HOME/.local/bin" ]; sessionVariables = { FLAKE = "$HOME/nix-config"; }; }; systemd.user.startServices = "sd-switch"; xdg.mime.enable = true; }