# Fix for tmux on openSuse with WSL2 export TMUX_TMPDIR='/tmp' # Directory to store zinit and plugins ZINIT_HOME="${XDG_DATA_HOME:-${HOME}/.local/share}/zinit/zinit.git" # Download zinit if it doesn't exist yet if [ ! -d "$ZINIT_HOME" ]; then mkdir -p "$(dirname $ZINIT_HOME)" git clone https://github.com/zdharma-continuum/zinit.git "$ZINIT_HOME" fi # Load zinit source "${ZINIT_HOME}/zinit.zsh" # Zsh plugins zinit light zsh-users/zsh-syntax-highlighting zinit light zsh-users/zsh-completions zinit light zsh-users/zsh-autosuggestions zinit light Aloxaf/fzf-tab # Zsh snippets zinit snippet OMZP::git zinit snippet OMZP::sudo zinit snippet OMZP::kubectl zinit snippet OMZP::kubectx zinit snippet OMZP::command-not-found # Enable rustup tab completion for zsh - https://rust-lang.github.io/rustup/installation/index.html fpath+=~/.zfunc # Load completions autoload -Uz compinit && compinit zinit cdreplay -q # Setup hooks for VIMODE in zsh function zle-keymap-select { if [[ ${KEYMAP} == vicmd ]]; then export VIMODE="NORMAL" else export VIMODE="INSERT" fi zle && zle reset-prompt } function zle-line-init { export VIMODE="INSERT" zle && zle reset-prompt } function zle-line-finish { export VIMODE="INSERT" zle && zle reset-prompt } zle -N zle-keymap-select zle -N zle-line-init zle -N zle-line-finish # Keybindings bindkey -v bindkey '^y' autosuggest-accept bindkey '^k' history-search-backward bindkey '^j' history-search-forward bindkey '^[w' kill-region # History HISTSIZE=5000 HISTFILE=~/.zsh_history SAVEHIST=$HISTSIZE HISTDUP=erase setopt appendhistory setopt sharehistory setopt hist_ignore_space setopt hist_ignore_all_dups setopt hist_save_no_dups setopt hist_ignore_dups setopt hist_find_no_dups # Completion styling zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}" zstyle ':completion:*' menu no zstyle ':fzf-tab:complete:cd:*' fzf-preview 'ls --color $realpath' zstyle ':fzf-tab:complete:__zoxide_z:*' fzf-preview 'ls --color $realpath' # Load Homebrew eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)" # Shell integrations source <(fzf --zsh) eval "$(zoxide init --cmd cd zsh)" eval "$(oh-my-posh init zsh --config $HOME/.config/ohmyposh/tokyocat.omp.yml)" # Exports export EDITOR=nvim export FZF_DEFAULT_OPTS=" \ --color=bg+:#313244,bg:#1e1e2e,spinner:#f5e0dc,hl:#f38ba8 \ --color=fg:#cdd6f4,header:#f38ba8,info:#cba6f7,pointer:#f5e0dc \ --color=marker:#f5e0dc,fg+:#cdd6f4,prompt:#cba6f7,hl+:#f38ba8" # Aliases alias ls='ls --color' alias c='clear' alias vim='nvim'