{ config, pkgs, ... }:

{
  # https://nixos.wiki/wiki/Command_Shell
  # https://nixos.wiki/wiki/Zsh
  programs.zsh.enable = true;
  users.defaultUserShell = pkgs.zsh;

  # Inside the following Home Manager configuration block,
  # `config` refers to Home Manager configuration.
  home-manager.users.yoda = { osConfig, config, pkgs, ... }: {
    programs.zsh = {
      enable = true;
      shellAliases = {
        #ll = "ls -l";
        #update = "sudo nixos-rebuild switch";
      };
      history.size = 1000;
      history.ignoreDups = true;
      #history.ignoreAllDups = true;

      # nix-repl: config.home-manager.users.yoda.programs.zsh.history.path
      # -> /home/yoda/.local/share/.histfile
      history.path = "${config.xdg.dataHome}/.histfile";

      oh-my-zsh = {
        enable = true;
        plugins = [
          # Provides many aliases and a few useful functions.
          #"git"
          # Easily prefix your current or previous commands with sudo by pressing `esc` twice.
          #"sudo"
        ];
        #theme = "robbyrussell";
        theme = "agnoster";
      };
    };
  };
}
