{ 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"; neofetch = "hyfetch"; shutdown = "shutdown 0"; reboot = "reboot 0"; }; 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="; }; } { name = "terraform"; src = pkgs.fetchFromGitHub { owner = "macunha1"; repo = "zsh-terraform"; rev = "fd1471d3757f8ed13f56c4426f88616111de2a87"; sha256 = "0z6i9wjjklb4lvr7zjhbphibsyx51psv50gm07mbb0kj9058j6kc"; }; } ]; 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" ]; }; # Extra commands that take more complex forms initExtra = '' eval "$(zoxide init --cmd cd zsh)" tre() { command tre "$@" -e && source "/tmp/tre_aliases_$USER" 2>/dev/null; } zhx() { command zellij action new-tab --layout $HOME/.config/zellij/layouts/helix.kdl; } ''; }; }