# ============================================================================= # Filip's config for the zoomer shell # ============================================================================= # ─── 1) Fundamental environment ────────────────────────────────────────────── export PATH="$HOME/.local/bin:$PATH" # ─── 2) Shell behaviour ────────────────────────────────────────────────────── autoload -U colors && colors setopt auto_pushd setopt no_check_jobs setopt pushd_ignore_dups setopt pushd_silent setopt autocd setopt interactive_comments stty stop undef unsetopt beep zstyle ':completion:*' cache-path "${XDG_CACHE_HOME:-$HOME/.cache}/zsh/zcompcache" zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' zstyle ':completion:*' use-cache on # ─── 3) Prompt ─────────────────────────────────────────────────────────────── blue=$(tput setaf 34) green=$(tput setaf 40) cyan=$(tput setaf 46) lime=$(tput setaf 154) reset=$(tput sgr0) PS1="%{$blue%}%n%{$green%}@%{$cyan%}%m %{$lime%}%1~ %{$reset%}$ " # ─── 4) History ────────────────────────────────────────────────────────────── HISTSIZE=10000000 SAVEHIST=10000000 HISTFILE="${XDG_CACHE_HOME:-$HOME/.cache}/shell/history" setopt inc_append_history setopt hist_ignore_all_dups setopt hist_find_no_dups setopt hist_save_no_dups # ─── 5) Completion ─────────────────────────────────────────────────────────── autoload -U compinit zstyle ':completion:*' menu select zmodload zsh/complist fpath=(/usr/share/zsh/site-functions $fpath) [ -f "$ALIASRC" ] && source "$ALIASRC" _comp_options+=(globdots) # hidden files compinit # ─── 6) Vi mode & keybindings ──────────────────────────────────────────────── export KEYTIMEOUT=1 # bindkey -v # uncomment only if you don't use zsh-vi-mode plugin # Better backspace in vi mode bindkey -v '^?' backward-delete-char # Menu navigation with vim keys bindkey -M menuselect 'h' vi-backward-char bindkey -M menuselect 'j' vi-down-line-or-history bindkey -M menuselect 'k' vi-up-line-or-history bindkey -M menuselect 'l' vi-forward-char # ─── 7) Zinit & plugins ────────────────────────────────────────────────────── [[ ! -f $HOME/.local/share/zinit/zinit.git/zinit.zsh ]] && { print -P "%F{33} Installing %F{220}Zinit…%f" mkdir -p "$HOME/.local/share/zinit" git clone https://github.com/zdharma-continuum/zinit "$HOME/.local/share/zinit/zinit.git" } source "$HOME/.local/share/zinit/zinit.git/zinit.zsh" autoload -Uz _zinit (( ${+_comps} )) && _comps[zinit]=_zinit zinit light-mode for \ zdharma-continuum/zinit-annex-as-monitor \ zdharma-continuum/zinit-annex-bin-gem-node \ zdharma-continuum/zinit-annex-patch-dl \ zdharma-continuum/zinit-annex-rust zinit ice depth=1 zinit light-mode for \ jeffreytse/zsh-vi-mode \ zsh-users/zsh-autosuggestions \ zsh-users/zsh-completions \ zsh-users/zsh-history-substring-search \ zsh-users/zsh-syntax-highlighting \ ZVM_LINE_INIT_MODE=$ZVM_MODE_INSERT ZVM_SYSTEM_CLIPBOARD_ENABLED=true ZVM_CLIPBOARD_COPY_CMD='xclip -selection clipboard' ZVM_CLIPBOARD_PASTE_CMD='xclip -selection clipboard -o' ZVM_LAZY_KEYBINDINGS=false ZSH_AUTOSUGGEST_STRATEGY=(history completion) ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE="fg=#999999,bg=default,underline" ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=100 # ─── 8) Custom functions & widgets ─────────────────────────────────────────── lfcd() { local tmp="$(mktemp -uq)" trap 'rm -f $tmp >/dev/null 2>&1' EXIT lf -last-dir-path="$tmp" "$@" [ -f "$tmp" ] && { local dir="$(cat "$tmp")" [ -d "$dir" ] && [ "$dir" != "$(pwd)" ] && cd "$dir" } } lfcd_widget() { zle -I; BUFFER="lfcd"; zle accept-line; } gitui_widget() { zle -I; BUFFER="gitui"; zle accept-line; } htop_widget() { zle -I; BUFFER="htop"; zle accept-line; } zle -N lfcd_widget zle -N gitui_widget zle -N htop_widget bindkey -M viins '^o' lfcd_widget bindkey -M vicmd '^o' lfcd_widget bindkey -M viins '^g' gitui_widget bindkey -M vicmd '^g' gitui_widget bindkey -M viins '^t' htop_widget bindkey -M vicmd '^t' htop_widget # history substring search (up/down) 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 # accept suggestion bindkey '^f' autosuggest-accept # ─── 9) Tool initializations ───────────────────────────────────────────────── eval "$(zoxide init zsh)" # >>> conda initialize >>> # !! Contents within this block are managed by 'conda init' !! # __conda_setup="$('/home/filipek/.local/opt/miniconda3/bin/conda' 'shell.zsh' 'hook' 2> /dev/null)" # if [ $? -eq 0 ]; then # eval "$__conda_setup" # else # if [ -f "/home/filipek/.local/opt/miniconda3/etc/profile.d/conda.sh" ]; then # . "/home/filipek/.local/opt/miniconda3/etc/profile.d/conda.sh" # else # export PATH="/home/filipek/.local/opt/miniconda3/bin:$PATH" # fi # fi # unset __conda_setup # <<< conda initialize <<< # ─── 10) Local overrides (create this file if needed) ───────────────────────── [ -f ~/.zshrc.local ] && source ~/.zshrc.local