Home Manager base module

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

  <<config>>

  _class = "homeManager";
}

Config

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.

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
31.582381 milliseconds
Gemini-to-HTML Time
0.326808 milliseconds

This content has been proxied by September (UNKNO).