{ pkgs, ... }:

let
  commitFunctions = pkgs.writeTextDir "bin/commits.sh" (builtins.readFile ./scripts/commits.sh);
in
{
  home.packages = with pkgs; [ any-nix-shell ];

  programs.zsh = {
    enable = true;

    oh-my-zsh = {
      enable = true;
      plugins = [ "git" "sudo" "docker" "docker-compose" "adb" "systemd" ];
      theme = "bira";
    };
    autosuggestion.enable = false;
    dotDir = ".config/zsh";
    initExtra = ''
      # avoid macOS updates to destroy nix
      if [ -e '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh' ]; then
        source '/nix/var/nix/profiles/default/etc/profile.d/nix-daemon.sh'
      fi

      any-nix-shell zsh --info-right | source /dev/stdin
      source ${pkgs.nix-index}/etc/profile.d/command-not-found.sh
      ${if pkgs.stdenv.isDarwin then "export PATH=$PATH:/opt/homebrew/bin" else ""}
      
      source ${commitFunctions}/bin/commits.sh
    '';
  };
}