{ config, pkgs, ... }: { home.packages = with pkgs; [ zsh-completions ]; programs.zsh = { enable = true; dotDir = ".config/zsh"; defaultKeymap = "emacs"; enableCompletion = true; enableAutosuggestions = true; history = { size = 500000; save = 500000; extended = true; ignoreSpace = true; ignoreDups = true; share = true; # see # https://github.com/nix-community/home-manager/blob/32a7da69dc53c9eb5ad0675eb7fdc58f7fe35272/modules/programs/zsh.nix#L537 path = "${config.xdg.dataHome}/zsh/zsh_history"; }; localVariables = { # Print timing statistics for everything which takes longer than # 5 seconds of user + system time. REPORTTIME = 5; }; shellAliases = { ll = "ls -l --color=auto"; lt = "ls -ltrh --color=auto"; la = "ls -ltrha --color=auto"; pkgsearch = "nix search nixpkgs"; flup = "nix flake update --commit-lock-file"; }; oh-my-zsh = { enable = true; plugins = [ "git" ]; theme = "robbyrussell"; }; }; }