{ pkgs, terminal, lib, ... }: { home.packages = with pkgs; [ zoxide ]; programs.zsh.enable = true; programs.zoxide.enable = true; programs.oh-my-posh.enable = false; home.file.".config/oh-my-posh/config.omp.json" = { source = ./custom/config.omp.json; force = true; }; programs.zsh = { plugins = [ { name = "vi-mode"; src = pkgs.zsh-vi-mode; file = "share/zsh-vi-mode/zsh-vi-mode.plugin.zsh"; } { name = "autosuggestion"; src = pkgs.zsh-autosuggestions; file = "share/zsh-autosuggestions/zsh-autosuggestions.zsh"; } ]; enableCompletion = true; syntaxHighlighting.enable = true; shellAliases = terminal.shellAliases; history.size = 10000; oh-my-zsh = { plugins = []; enable = true; theme = "robbyrussell"; extraConfig = '' zstyle ':completion:*' completer _expand _complete _ignored _approximate _expand_alias zstyle ':autocomplete:*' default-context curcontext zstyle ':autocomplete:*' min-input 0 setopt HIST_FIND_NO_DUPS # setopt autocd # cd without writing 'cd' setopt globdots # show dotfiles in autocomplete list ''; }; initContent = '' # zsh-autocomplete bindkey -M menuselect '^M' .accept-line # run code when selected completion autoload -Uz compinit if [ "$(date +'%j')" != "$(stat -f '%Sm' -t '%j' ~/.zcompdump 2>/dev/null)" ]; then compinit else compinit -C fi ''; }; }