{ pkgs, config, ... } : let wrapPlugin = { name, pkg }: { inherit name; src = pkg + "/share/zsh/site-functions"; }; in { home.packages = [ pkgs.swatch ]; programs.zsh = { enable = true; enableAutosuggestions = true; enableCompletion = true; dotDir = ".config/zsh"; history = { expireDuplicatesFirst = true; extended = true; ignoreDups = true; share = true; }; initExtraBeforeCompInit = '' export PATH='/run/wrappers/bin:/home/thorn/.nix-profile/bin:/etc/profiles/per-user/thorn/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin:/home/thorn/.config/zsh/plugins/fast-syntax-highlighting' ''; initExtra = '' setopt promptsubst autoload -U colors && colors export PROMPT='%{$fg[white]%}%B$(swatch)%b %{$fg[blue]%}%2~ %{$fg[green]%}%B>%b ' ''; shellAliases = { nf = "neofetch --gtk2 off --gtk3 off --ascii_bold on"; ls = "ls --color"; ec = "emacsclient"; }; plugins = (map wrapPlugin [ { name = "fast-syntax-highlighting"; pkg = pkgs.zsh-fast-syntax-highlighting; } ]); }; programs.dircolors.enableZshIntegration = true; }