# --- History --- HISTFILE=~/.histfile HISTSIZE=1000 SAVEHIST=2000 # --- Options --- setopt autocd setopt sharehistory setopt histignoredups setopt histignorealldups setopt histsavenodups bindkey -v # --- Completion --- zstyle :compinstall filename '/home/m/.zshrc' autoload -Uz compinit compinit # --- Aliases --- alias ll='ls -l' alias la='ls -lA' alias o='opencode run --thinking' alias oc='opencode' alias sctl='sudo systemctl' alias uctl='systemctl --user' alias q='exit' alias fwl='sudo firewall-cmd' # --- Keybinds --- bindkey '.,' open-nvim bindkey ',l' clear-screen bindkey ',r' fzf-history-widget bindkey ',f' fzf-file-widget bindkey ',c' fzf-cd-widget # --- Functions --- function open-nvim { nvim; } zle -N open-nvim open-nvim function m { local tmp cwd tmp="$(mktemp -t "yazi-cwd.XXXXXX")" command yazi "$@" --cwd-file="$tmp" IFS= read -r -d '' cwd <"$tmp" [ "$cwd" != "$PWD" ] && [ -d "$cwd" ] && builtin cd -- "$cwd" rm -f -- "$tmp" } # --- Prompt Configuration --- prompt_char='>' function set_prompt { local branch branch="$(git branch --show-current 2>/dev/null)" if [[ "$PWD" == "$HOME" ]]; then PROMPT="%F{magenta}%~%f %n@%m $prompt_char " elif [[ "$branch" != '' ]]; then PROMPT="%F{magenta}%~%f ($branch) %n@%m $prompt_char " else PROMPT="%F{magenta}%~%f %n@%m $prompt_char " fi } autoload -Uz add-zsh-hook add-zsh-hook precmd set_prompt function set_prompt_char { local old old=$prompt_char if [[ $KEYMAP == vicmd && $REGION_ACTIVE != 0 ]]; then prompt_char='v' elif [[ $KEYMAP == vicmd ]]; then prompt_char='<' else prompt_char='>' fi if [[ $prompt_char != "$old" ]]; then set_prompt zle reset-prompt fi } autoload -Uz add-zle-hook-widget add-zle-hook-widget line-pre-redraw set_prompt_char # --- External Tools & Plugins --- command -v mise >/dev/null && eval "$(mise activate zsh)" command -v zoxide >/dev/null && eval "$(zoxide init zsh)" command -v fzf >/dev/null && eval "$(fzf --zsh)" command -v lsd >/dev/null && alias ls='lsd' if [[ -d ~/.zsh ]]; then source ~/.zsh/zsh-autosuggestions/zsh-autosuggestions.zsh source ~/.zsh/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh source ~/.zsh/zsh-history-substring-search/zsh-history-substring-search.zsh bindkey '^[[A' history-substring-search-up bindkey '^[[B' history-substring-search-down bindkey -M vicmd 'k' history-substring-search-up bindkey -M vicmd 'j' history-substring-search-down fi