{ lib, pkgs, ... }:
let
  shellAliases = {
    ll = "ls -alh";
    update-boot = "sudo nixos-rebuild boot --max-jobs 10 --build-host admin@10.0.1.3";
    update-switch = "sudo nixos-rebuild switch --max-jobs 10 --build-host admin@10.0.1.3";
    update-flake = "sudo nix flake update ~/nix-config";
    update-nas = "nixos-rebuild switch --use-remote-sudo --target-host admin@10.0.1.3 --build-host admin@10.0.1.3 --flake ~/nix-config#jallen-nas";
    nas-ssh = "kitten ssh admin@10.0.1.3";
    ducks = "du -cksh * | sort -hr | head -n 15";
  };

  gitAliases = {
    co = "checkout";
    ci = "commit";
    cia = "commit --amend";
    s = "status";
    st = "status";
    b = "branch";
    p = "pull --rebase";
    pu = "push";
  };
in
{

  home.username = "hass-admin";
  home.homeDirectory = "/home/hass-admin";
  home.stateVersion = "23.11";
  programs.home-manager.enable = true;

  programs = {
    fish.enable = false;
    mangohud.enable = true;
    java.enable = true;

    zsh = {
      enable = true;
      enableCompletion = true;
      autosuggestion.enable = true;
      syntaxHighlighting.enable = true;

      shellAliases = shellAliases;

      oh-my-zsh = {
        enable = true;
        plugins = [ "git" ];
        theme = "fishy";
      };
    };
  };

  programs.git = {
    enable = true;
    userName = "mjallen18";
    userEmail = "matt.l.jallen@gmail.com";
    aliases = gitAliases;
  };

  home.packages = with pkgs; [
    age
    fastfetch
    firefox
  ];
}
