{ inputs, outputs, lib, config, pkgs, ... }: { programs.zoxide = { enable = true; }; programs.zsh = { enable = true; shellAliases = { cd = "z"; code = "codium ./"; ls = "eza"; lh = "ls -lah"; cat = "bat"; tree = "tre"; }; plugins = [ { name = "zsh-nix-shell"; file = "nix-shell.plugin.zsh"; src = pkgs.fetchFromGitHub { owner = "chisui"; repo = "zsh-nix-shell"; rev = "v0.8.0"; sha256 = "sha256-Z6EYQdasvpl1P78poj9efnnLj7QQg13Me8x1Ryyw+dM="; }; } ]; autosuggestion.enable = true; enableCompletion = true; historySubstringSearch.enable = true; syntaxHighlighting.enable = true; #zsh-abbr.enable = true; oh-my-zsh = { enable = true; plugins = [ "git" "colored-man-pages" "colorize" "dirhistory" "dirpersist" "history" "history-substring-search" "fancy-ctrl-z" "git-flow" "isodate" "z" "zsh-interactive-cd" "zsh-navigation-tools" ]; }; # stuff for zoxide & tre initExtra = '' eval "$(zoxide init --cmd cd zsh)" tre() { command tre "$@" -e && source "/tmp/tre_aliases_$USER" 2>/dev/null; } ''; }; }