{ pkgs, config, lib, ... }: { programs = { fzf = { enable = true; enableZshIntegration = true; tmux = { enableShellIntegration = true; }; }; zsh = { enable = true; oh-my-zsh = { enable = false; }; autosuggestion = { enable = true; }; syntaxHighlighting = { enable = true; }; enableCompletion = true; history = { append = true; share = true; ignoreSpace = true; ignoreAllDups = true; ignoreDups = true; }; historySubstringSearch = { enable = true; searchUpKey = "^p"; searchDownKey = "^n"; }; shellAliases = { cd = "z"; cdi = "zi"; ls = "ls --color"; }; plugins = [ { name = "vi-mode"; src = pkgs.zsh-vi-mode; file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh"; } ]; initExtra = '' [ -n "$EAT_SHELL_INTEGRATION_DIR" ] && \ source "$EAT_SHELL_INTEGRATION_DIR/zsh" ''; }; starship = { enable = true; enableZshIntegration = true; settings = { format = lib.concatStrings [ "$username" "$hostname" "$directory" "$git_branch" "$git_state" "$git_status" "$cmd_duration" "$line_break" "$python" "$character" ]; directory = { style = "blue"; }; character = { success_symbol = "[❯](purple)"; error_symbol = "[❯](red)"; vimcmd_symbol = "[❮](green)"; }; git_branch = { format = "[$branch]($style)"; style = "bright-black"; }; git_status = { format = "[[(*$conflicted$untracked$modified$staged$renamed$deleted)](218) ($ahead_behind$stashed)]($style)"; style = "cyan"; conflicted = "​"; untracked = "​"; modified = "​"; staged = "​"; renamed = "​"; deleted = "​"; stashed = "≡"; }; git_state = { format = "\([$state( $progress_current/$progress_total)]($style)\) "; style = "bright-black"; }; cmd_duration = { format = "[$duration]($style) "; style = "yellow"; }; python = { format = "[$virtualenv]($style) "; style = "bright-black"; }; }; }; zoxide = { enable = true; enableZshIntegration = true; }; }; }