{ config, pkgs, lib, ... }: { 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"; hms = "home-manager switch --flake ."; nr = "sudo nixos-rebuild switch --flake ."; flup = "nix flake update --commit-lock-file"; dhcp-leasese = "xdg-open http://192.168.6.1:8067/"; }; prezto = { enable = true; prompt.theme = "minimal"; pmodules = [ "prompt" "git" ]; }; }; }