{pkgs, ...}: { programs.zsh = { enable = true; enableAutosuggestions = true; enableCompletion = true; defaultKeymap = "emacs"; dotDir = ".config/zsh"; history.expireDuplicatesFirst = true; history.path = "$ZDOTDIR/.zsh_history"; historySubstringSearch.enable = true; shellAliases = { ls = "${pkgs.eza}/bin/eza --icons -a --group-directories-first"; diff = "diff --color=auto"; grep = "grep --color=auto"; ip = "ip --color=auto"; mkdir = "mkdir -p"; gst = "git status"; gc = "git commit"; ga = "git add"; gpl = "git pull"; gpu = "git push"; gd = "git diff"; gch = "git checkout"; gs = "git switch"; gre = "git restore"; gr = "git remote"; gcl = "git clone"; glg = "git log --graph --abbrev-commit --decorate --format=format:'%C(bold green)%h%C(reset) - %C(bold cyan)%aD%C(reset) %C(bold yellow)(%ar)%C(reset)%C(auto)%d%C(reset)%n'' %C(white)%s%C(reset) %C(dim white)- %an%C(reset)' --all"; gb = "git branch"; gm = "git merge"; gf = "git fetch"; rebuild = "~/dotfiles/nixos/rebuild.sh"; }; syntaxHighlighting.enable = true; syntaxHighlighting.highlighters = ["main" "brackets"]; }; programs.starship = { enable = true; enableBashIntegration = true; enableZshIntegration = true; settings = { add_newline = false; command_timeout = 5000; character = { success_symbol = "[](bold green)"; error_symbol = "[](bold red)"; }; cmd_duration = { min_time = 500; show_milliseconds = true; }; }; }; programs.zoxide = { enable = true; enableBashIntegration = true; enableZshIntegration = true; options = ["--cmd cd"]; }; }