{ config, pkgs, lib, ... }: { programs.zsh = { enable = true; enableCompletion = true; autosuggestion.enable = true; syntaxHighlighting.enable = true; history.size = 500000; #history.path = "${config.xdg.dataHome}/zsh/history"; prezto = { enable = true; caseSensitive = true; color = true; editor = { dotExpansion = true; keymap = "vi"; }; pmodules = [ "environment" "terminal" "editor" "history" "directory" "spectrum" "utility" "completion" "syntax-highlighting" "history-substring-search" "prompt" "git" ]; prompt.theme = "minimal"; syntaxHighlighting.highlighters = [ "main" "brackets" "pattern" "line" "cursor" "root" ]; tmux = { autoStartLocal = true; itermIntegration = true; }; }; initContent = '' HISTCONTROL='erasedups:ignoreboth' HISTIGNORE='&:[ ]*:exit:ls:bg:fg:history:clear' unsetopt beep if [[ "$(uname -s)" == "Darwin" ]]; then export RUSTUP_HOME="$HOME/.rustup" export CARGO_HOME="$HOME/.cargo" [ -f "$CARGO_HOME/env" ] && . "$CARGO_HOME/env" fi; if [[ "$(uname -r)" == *Microsoft* ]]; then if command -v tmuxp &> /dev/null && [ -z "$TMUX" ]; then tmuxp load --yes misc fi fi; ''; }; programs.fzf = { enable = true; enableZshIntegration = true; }; programs.lsd = { enable = true; enableZshIntegration = true; }; programs.zoxide = { enable = true; enableZshIntegration = true; options = [ "--cmd cd" ]; }; programs.bat.enable = true; programs.ripgrep.enable = true; programs.btop.enable = true; programs.ranger.enable = true; home.packages = with pkgs; [ fd dust glow ripgrep-all viddy duf (python3.withPackages(ps: [ ps.llm ps.llm-gemini ])) #nerdfonts ]; home.sessionVariables = lib.mkMerge [ { BAT_THEME = "Coldark-Cold"; } ]; home.shellAliases = lib.mkMerge [ { lst = "lsd --tree"; } # This is the correct way to use lib.mkIf within lib.mkMerge # (lib.mkIf pkgs.stdenv.targetPlatform.isWindows { (lib.mkIf (lib.strings.hasSuffix "windows" pkgs.system) { open = "explorer.exe ."; }) ]; }