{
pkgs,
lib,
osConfig,
...
}:
{
home.stateVersion = "22.11";
<<config>>
_class = "homeManager";
}mjm.git.enable = lib.mkDefault true; mjm.shell.enable = lib.mkDefault true;
The git and shell modules are enabled by default on any machine using my home-manager config.
home.packages = lib.attrValues {
inherit (pkgs)
jq
pstree
ripgrep
unzip
;
};Installs a handful of utilities that I find useful to have.
xdg.enable = true;
Ensures the XDG_* environment variables are set up properly.
programs.ssh.enableDefaultConfig = false;
Disables some legacy defaults home-manager used to have for SSH, avoiding a warning.
home.enableNixpkgsReleaseCheck = false;
home-manager includes a check that the version of Nixpkgs matches the version it is intended to work with: home-manager master should be used with an unstable version of Nixpkgs, and home-manager release-XX.XX should be used the matching stable version of Nixpkgs.
Unfortunately, when Nixpkgs cuts a new release, there's usually a brief period where this check is out of sync: the Nixpkgs version has been bumped but home-manager master hasn't been updated to reflect it. For this reason, I disable this check. I know that I'm targeting matching branches, so I'm not worried about a mismatch here.
catppuccin.enable = osConfig.catppuccin.enable or true; catppuccin.autoEnable = osConfig.catppuccin.autoEnable or false; catppuccin.flavor = osConfig.catppuccin.flavor or "macchiato"; catppuccin.sources = lib.mkIf (osConfig ? catppuccin) osConfig.catppuccin.sources;
Sets up catppuccin-nix on the home-manager side, ideally by copying the values from NixOS. I don't use home-manager standalone, so osConfig should always be there to provide these values, but I've written these defensively anyway.
text/gemini;lang=en-USThis content has been proxied by September (UNKNO).