{
  lib,
  pkgs,
  home,
  ...
}:
let
  shellAliases = {
    update-switch = "darwin-rebuild switch --flake ~/nix-config";
    update-flake = "nix flake update ~/nix-config";
    ducks = "du -cksh * | sort -hr | head -n 15";
  };
  packages = with pkgs; [
    age
    cpufetch
    deadnix
    direnv
    nixfmt-rfc-style
    sops
    tree
    wget
  ];
in
{
  # Home Manager needs a bit of information about you and the
  # paths it should manage.
  home = {
    username = "mattjallen";
    homeDirectory = "/Users/mattjallen";
    packages = lib.mkForce packages;
    sessionVariables = {
      NH_DARWIN_FLAKE = "${home.homeDirectory}/nix-config#mac";
    };
  };

  programs = {
    zsh = {
      shellAliases = shellAliases;
    };
  };

  # Manage bug in compilations - who uses manpages in 2024 anyways? :P
  manual.manpages.enable = false;

  # Override defaults that arent supported
  programs = {
    mangohud.enable = lib.mkForce false;

    nh = {
      flake = "${home.homeDirectory}/nix-config";
    };
  };

  services = {
    pass-secret-service.enable = lib.mkForce false;
    nextcloud-client.enable = lib.mkForce false;
  };
}
