Home Manager base module

{
  lib,
  osConfig,
  ...
}:
{
  home.stateVersion = "22.11";

  <<config>>

  _class = "homeManager";
}

Config

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.

fonts.fontconfig.enable = false;

By default, home-manager will do some fontconfig management if it is enabled on the NixOS side. I'd rather it didn't do that, as I prefer to manage that stuff from the system side.

Proxy Information
Original URL
gemini://midna.dev/homelab/modules/home-manager/base/
Status Code
Success (20)
Meta
text/gemini;lang=en-US
Capsule Response Time
18.084075 milliseconds
Gemini-to-HTML Time
0.17338 milliseconds

This content has been proxied by September (UNKNO).