{ config, lib, pkgs, profile, ... }: { imports = [ ./zshrc-personal.nix ]; programs.zsh = { enable = true; autosuggestion.enable = true; syntaxHighlighting = { enable = true; highlighters = [ "main" "brackets" "pattern" "root" ]; }; historySubstringSearch.enable = true; history = { ignoreDups = false; save = 100000; size = 100000; }; initContent = '' # vi keybindings for menu select bindkey -M menuselect 'h' vi-backward-char bindkey -M menuselect 'k' vi-up-line-or-history bindkey -M menuselect 'j' vi-down-line-or-history bindkey -M menuselect 'l' vi-forward-char # Tab to accept current selection bind-key -M menuselect '^I' accept-and-infer-next-history ''; shellAliases = { ".. " = "cd .."; "..." = "cd../.."; ls = "ls --color=auto"; ll = "ls -al"; grep = "grep --color=auto"; back = "cd $OLDPWD"; gs = "git status"; ssha = "eval $(ssh-agent) && ssh-add"; }; }; }