499 lines
19 KiB
Text
499 lines
19 KiB
Text
# shellcheck disable=SC1090,SC1091,SC2034,SC2154,SC2296
|
|
|
|
### Language / Fonts
|
|
export LANG="en_US"
|
|
export LC_ALL="en_US.UTF-8"
|
|
|
|
### Advanced Bash-features are supported
|
|
export BASH_SUPPORT=true
|
|
|
|
### Import Common Settings
|
|
export SHOW_MOTD=false
|
|
[ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/profile.sh" ] || source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/profile.sh"
|
|
|
|
### Escape if user is root
|
|
if [ "$USER" = 'root' ]; then
|
|
return
|
|
fi
|
|
|
|
# If not running interactively, don't do anything
|
|
case $- in
|
|
*i*) ;;
|
|
*) return;;
|
|
esac
|
|
|
|
### Misc.
|
|
[ -d "${XDG_STATE_HOME:-$HOME/.local/state}/zsh" ] || mkdir -p "${XDG_STATE_HOME:-$HOME/.local/state}/zsh"
|
|
export HISTFILE="${XDG_STATE_HOME:-$HOME/.local/state}/zsh/history"
|
|
export ZLE_RPROMPT_INDENT=1
|
|
export WORDCHARS=${WORDCHARS//\/}
|
|
export PROMPT_EOL_MARK=
|
|
export TIMEFMT=$'\nreal\t%E\nuser\t%U\nsys\t%S\ncpu\t%P'
|
|
|
|
### .zcompdump
|
|
# Source: https://www.reddit.com/r/zsh/comments/nwxcg4/store_zcompdump_in_specific_directory/
|
|
export ZSH_COMPDUMP="${XDG_CACHE_HOME:-$HOME/.cache}/zsh/zcompdump-$ZSH_VERSION"
|
|
|
|
### Antigen
|
|
export ADOTDIR="${XDG_DATA_HOME:-$HOME/.local/share}/antigen"
|
|
|
|
### Powerline
|
|
[[ ! -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]] || source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
|
|
|
|
### Fig
|
|
[ ! -f "$HOME/.fig/shell/zshrc.pre.zsh" ] || source "$HOME/.fig/shell/zshrc.pre.zsh"
|
|
|
|
# --------------------------------- SETTINGS ----------------------------------
|
|
setopt AUTO_CD
|
|
setopt BEEP
|
|
setopt CORRECT
|
|
setopt HIST_BEEP
|
|
setopt HIST_EXPIRE_DUPS_FIRST
|
|
setopt HIST_FIND_NO_DUPS
|
|
setopt HIST_IGNORE_ALL_DUPS
|
|
setopt HIST_IGNORE_DUPS
|
|
setopt HIST_REDUCE_BLANKS
|
|
setopt HIST_SAVE_NO_DUPS
|
|
setopt HIST_VERIFY
|
|
setopt INC_APPEND_HISTORY
|
|
setopt INTERACTIVE_COMMENTS
|
|
setopt MAGIC_EQUAL_SUBST
|
|
setopt NO_NO_MATCH
|
|
setopt NOTIFY
|
|
setopt NUMERIC_GLOB_SORT
|
|
setopt PROMPT_SUBST
|
|
setopt SHARE_HISTORY
|
|
|
|
# ZSH completion system
|
|
[ -d "${XDG_CACHE_HOME:-$HOME/.cache}/zsh" ] || mkdir -p "${XDG_CACHE_HOME:-$HOME/.cache}/zsh"
|
|
|
|
zstyle ':completion:*:*:*:*:*' menu select
|
|
zstyle ':completion:*' cache-path "$XDG_CACHE_HOME/zsh/zcompcache"
|
|
zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'
|
|
zstyle ':completion:*' list-colors "${(s.:.)LS_COLORS}"
|
|
zstyle ':completion:*' auto-description 'specify: %d'
|
|
zstyle ':completion:*' completer _expand _complete
|
|
zstyle ':completion:*' format 'Completing %d'
|
|
zstyle ':completion:*' group-name ''
|
|
zstyle ':completion:*' list-prompt %SAt %p: Hit TAB for more, or the character to insert%s
|
|
zstyle ':completion:*' rehash true
|
|
zstyle ':completion:*' select-prompt %SScrolling active: current selection at %p%s
|
|
zstyle ':completion:*' use-compctl false
|
|
zstyle ':completion:*' verbose true
|
|
# shellcheck disable=SC2016
|
|
zstyle ':completion:*:kill:*' command 'ps -u $USER -o pid,%cpu,tty,cputime,cmd'
|
|
zstyle ':completion:*:git-checkout:*' sort false
|
|
zstyle ':completion:*:descriptions' format '[%d]'
|
|
if command -v fzf > /dev/null && command -v eza > /dev/null; then
|
|
zstyle ':fzf-tab:complete:cd:*' fzf-preview 'eza -1 --color=always $realpath'
|
|
zstyle ':fzf-tab:*' switch-group ',' '.'
|
|
fi
|
|
|
|
# Key bindings
|
|
bindkey -e
|
|
bindkey '^U' backward-kill-line
|
|
bindkey '^[[2~' overwrite-mode
|
|
bindkey '^[[3~' delete-char
|
|
bindkey '^[[H' beginning-of-line
|
|
bindkey '^[[1~' beginning-of-line
|
|
bindkey '^[[F' end-of-line
|
|
bindkey '^[[4~' end-of-line
|
|
bindkey '^[[1;5C' forward-word
|
|
bindkey '^[[1;5D' backward-word
|
|
bindkey '^[[3;5~' kill-word
|
|
bindkey '^[[5~' beginning-of-buffer-or-history
|
|
bindkey '^[[6~' end-of-buffer-or-history
|
|
bindkey '^[[Z' undo
|
|
bindkey ' ' magic-space
|
|
|
|
# ------------------------------- ZSH PLUGINS ---------------------------------
|
|
# Plugin source helper
|
|
_source_plugin() {
|
|
local plugin_name="$1"
|
|
for basedir in "${XDG_DATA_HOME:-$HOME/.local/share}/antigen/bundles/zsh-users"; do
|
|
plugin="$basedir/$plugin_name/$plugin_name.zsh"
|
|
[ -f "$plugin" ] && source "$plugin" && return 0
|
|
done
|
|
echo "\033[33m[ ! ]\033[0m ZSH ${plugin_name#zsh-} not installed"
|
|
return 1
|
|
}
|
|
|
|
# ZSH Autosuggestions
|
|
_source_plugin zsh-autosuggestions && ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=#999'
|
|
|
|
# ZSH Syntax Highlighting
|
|
if _source_plugin zsh-syntax-highlighting; then
|
|
ZSH_HIGHLIGHT_HIGHLIGHTERS=(main brackets pattern)
|
|
ZSH_HIGHLIGHT_STYLES[default]=none
|
|
ZSH_HIGHLIGHT_STYLES[unknown-token]=fg=white,underline
|
|
ZSH_HIGHLIGHT_STYLES[reserved-word]=fg=cyan,bold
|
|
ZSH_HIGHLIGHT_STYLES[suffix-alias]=fg=green,underline
|
|
ZSH_HIGHLIGHT_STYLES[global-alias]=fg=green,bold
|
|
ZSH_HIGHLIGHT_STYLES[precommand]=fg=green,underline
|
|
ZSH_HIGHLIGHT_STYLES[commandseparator]=fg=blue,bold
|
|
ZSH_HIGHLIGHT_STYLES[autodirectory]=fg=green,underline
|
|
ZSH_HIGHLIGHT_STYLES[path]=bold
|
|
ZSH_HIGHLIGHT_STYLES[path_pathseparator]=
|
|
ZSH_HIGHLIGHT_STYLES[path_prefix_pathseparator]=
|
|
ZSH_HIGHLIGHT_STYLES[globbing]=fg=blue,bold
|
|
ZSH_HIGHLIGHT_STYLES[history-expansion]=fg=blue,bold
|
|
ZSH_HIGHLIGHT_STYLES[command-substitution]=none
|
|
ZSH_HIGHLIGHT_STYLES[command-substitution-delimiter]=fg=magenta,bold
|
|
ZSH_HIGHLIGHT_STYLES[process-substitution]=none
|
|
ZSH_HIGHLIGHT_STYLES[process-substitution-delimiter]=fg=magenta,bold
|
|
ZSH_HIGHLIGHT_STYLES[single-hyphen-option]=fg=green
|
|
ZSH_HIGHLIGHT_STYLES[double-hyphen-option]=fg=green
|
|
ZSH_HIGHLIGHT_STYLES[back-quoted-argument]=none
|
|
ZSH_HIGHLIGHT_STYLES[back-quoted-argument-delimiter]=fg=blue,bold
|
|
ZSH_HIGHLIGHT_STYLES[single-quoted-argument]=fg=yellow
|
|
ZSH_HIGHLIGHT_STYLES[double-quoted-argument]=fg=yellow
|
|
ZSH_HIGHLIGHT_STYLES[dollar-quoted-argument]=fg=yellow
|
|
ZSH_HIGHLIGHT_STYLES[rc-quote]=fg=magenta
|
|
ZSH_HIGHLIGHT_STYLES[dollar-double-quoted-argument]=fg=magenta,bold
|
|
ZSH_HIGHLIGHT_STYLES[back-double-quoted-argument]=fg=magenta,bold
|
|
ZSH_HIGHLIGHT_STYLES[back-dollar-quoted-argument]=fg=magenta,bold
|
|
ZSH_HIGHLIGHT_STYLES[assign]=none
|
|
ZSH_HIGHLIGHT_STYLES[redirection]=fg=blue,bold
|
|
ZSH_HIGHLIGHT_STYLES[comment]=fg=black,bold
|
|
ZSH_HIGHLIGHT_STYLES[named-fd]=none
|
|
ZSH_HIGHLIGHT_STYLES[numeric-fd]=none
|
|
ZSH_HIGHLIGHT_STYLES[arg0]=fg=cyan
|
|
ZSH_HIGHLIGHT_STYLES[bracket-error]=fg=red,bold
|
|
ZSH_HIGHLIGHT_STYLES[bracket-level-1]=fg=blue,bold
|
|
ZSH_HIGHLIGHT_STYLES[bracket-level-2]=fg=green,bold
|
|
ZSH_HIGHLIGHT_STYLES[bracket-level-3]=fg=magenta,bold
|
|
ZSH_HIGHLIGHT_STYLES[bracket-level-4]=fg=yellow,bold
|
|
ZSH_HIGHLIGHT_STYLES[bracket-level-5]=fg=cyan,bold
|
|
ZSH_HIGHLIGHT_STYLES[cursor-matchingbracket]=standout
|
|
fi
|
|
|
|
unset -f _source_plugin
|
|
|
|
# POWERLEVEL
|
|
if ! [[ $(tty) = /dev/tty* ]]; then
|
|
if source "${XDG_DATA_HOME:-$HOME/.local/share}/antigen/bundles/romkatv/powerlevel10k/powerlevel10k.zsh-theme" 2> /dev/null; then
|
|
s=' ' # fix too wide icons
|
|
POWERLEVEL9K_MODE=nerdfont-complete
|
|
POWERLEVEL9K_SHORTEN_STRATEGY=truncate_beginning
|
|
POWERLEVEL9K_PROMPT_ADD_NEWLINE=false
|
|
POWERLEVEL9K_PROMPT_ON_NEWLINE=true
|
|
POWERLEVEL9K_RPROMPT_ON_NEWLINE=true
|
|
POWERLEVEL9K_SHORTEN_DIR_LENGTH=2
|
|
# shellcheck disable=SC2016
|
|
POWERLEVEL9K_OS_ICON_CONTENT_EXPANSION='${P9K_CONTENT} $(whoami | grep -v "^root\$")'
|
|
POWERLEVEL9K_OS_ICON_BACKGROUND=red
|
|
POWERLEVEL9K_OS_ICON_FOREGROUND=white
|
|
POWERLEVEL9K_ROOT_INDICATOR_BACKGROUND=black
|
|
POWERLEVEL9K_ROOT_INDICATOR_FOREGROUND=red
|
|
POWERLEVEL9K_SSH_BACKGROUND=white
|
|
POWERLEVEL9K_SSH_FOREGROUND=blue
|
|
POWERLEVEL9K_FOLDER_ICON=
|
|
POWERLEVEL9K_DIR_BACKGROUND=blue
|
|
POWERLEVEL9K_DIR_FOREGROUND=black
|
|
POWERLEVEL9K_DIR_WRITABLE_BACKGROUND=black
|
|
POWERLEVEL9K_DIR_WRITABLE_FOREGROUND=red
|
|
POWERLEVEL9K_VCS_CLEAN_FOREGROUND=black
|
|
POWERLEVEL9K_VCS_CLEAN_BACKGROUND=green
|
|
POWERLEVEL9K_VCS_UNTRACKED_FOREGROUND=black
|
|
POWERLEVEL9K_VCS_UNTRACKED_BACKGROUND=yellow
|
|
POWERLEVEL9K_VCS_MODIFIED_FOREGROUND=white
|
|
POWERLEVEL9K_VCS_MODIFIED_BACKGROUND=black
|
|
POWERLEVEL9K_VCS_UNTRACKED_ICON=●
|
|
POWERLEVEL9K_VCS_UNSTAGED_ICON=±
|
|
POWERLEVEL9K_VCS_INCOMING_CHANGES_ICON=↓
|
|
POWERLEVEL9K_VCS_OUTGOING_CHANGES_ICON=↑
|
|
POWERLEVEL9K_VCS_COMMIT_ICON=$s
|
|
POWERLEVEL9K_STATUS_VERBOSE=false
|
|
POWERLEVEL9K_STATUS_VERBOSE=false
|
|
POWERLEVEL9K_STATUS_OK_IN_NON_VERBOSE=true
|
|
POWERLEVEL9K_EXECUTION_TIME_ICON=$s
|
|
POWERLEVEL9K_COMMAND_EXECUTION_TIME_THRESHOLD=0
|
|
POWERLEVEL9K_COMMAND_EXECUTION_TIME_BACKGROUND=black
|
|
POWERLEVEL9K_COMMAND_EXECUTION_TIME_FOREGROUND=blue
|
|
POWERLEVEL9K_COMMAND_BACKGROUND_JOBS_BACKGROUND=black
|
|
POWERLEVEL9K_COMMAND_BACKGROUND_JOBS_FOREGROUND=cyan
|
|
POWERLEVEL9K_TIME_ICON=
|
|
POWERLEVEL9K_TIME_FORMAT='%D{%I:%M}'
|
|
POWERLEVEL9K_TIME_BACKGROUND=black
|
|
POWERLEVEL9K_TIME_FOREGROUND=white
|
|
POWERLEVEL9K_RAM_ICON=
|
|
POWERLEVEL9K_RAM_FOREGROUND=black
|
|
POWERLEVEL9K_RAM_BACKGROUND=yellow
|
|
POWERLEVEL9K_VI_MODE_FOREGROUND=black
|
|
POWERLEVEL9K_VI_COMMAND_MODE_STRING=NORMAL
|
|
POWERLEVEL9K_VI_MODE_NORMAL_BACKGROUND=green
|
|
POWERLEVEL9K_VI_VISUAL_MODE_STRING=VISUAL
|
|
POWERLEVEL9K_VI_MODE_VISUAL_BACKGROUND=blue
|
|
POWERLEVEL9K_VI_OVERWRITE_MODE_STRING=OVERTYPE
|
|
POWERLEVEL9K_VI_MODE_OVERWRITE_BACKGROUND=red
|
|
POWERLEVEL9K_VI_INSERT_MODE_STRING=
|
|
POWERLEVEL9K_LEFT_PROMPT_FIRST_SEGMENT_START_SYMBOL='\uE0B2'
|
|
POWERLEVEL9K_RIGHT_PROMPT_LAST_SEGMENT_END_SYMBOL='\uE0B0'
|
|
POWERLEVEL9K_MULTILINE_FIRST_PROMPT_PREFIX='%F{blue}╭─'
|
|
POWERLEVEL9K_MULTILINE_LAST_PROMPT_PREFIX='%F{blue}╰%f '
|
|
POWERLEVEL9K_LEFT_PROMPT_ELEMENTS=(os_icon root_indicator ssh dir dir_writable vcs)
|
|
POWERLEVEL9K_RIGHT_PROMPT_ELEMENTS=(vi_mode status command_execution_time background_jobs time ram)
|
|
unset s
|
|
else
|
|
echo '\033[33m[ ! ]\033[0m ZSH powerlevel10k not installed'
|
|
fi
|
|
else
|
|
clear
|
|
echo
|
|
echo
|
|
fi
|
|
|
|
switch_powerlevel_multiline_prompt(){
|
|
[ $POWERLEVEL9K_PROMPT_ON_NEWLINE = true ] \
|
|
&& POWERLEVEL9K_PROMPT_ON_NEWLINE=false \
|
|
|| POWERLEVEL9K_PROMPT_ON_NEWLINE=true
|
|
|
|
zle && zle accept-line
|
|
}
|
|
zle -N switch_powerlevel_multiline_prompt
|
|
bindkey ^P switch_powerlevel_multiline_prompt
|
|
|
|
# ----------------------------------- MISC -----------------------------------
|
|
# If this is an xterm set the title to user@host:dir
|
|
case "$TERM" in
|
|
xterm*|rxvt*|Eterm|aterm|kterm|gnome*|alacritty)
|
|
precmd() {
|
|
print -Pnr -- $'\e]0;%n@%m: %~\a'
|
|
}
|
|
;;
|
|
esac
|
|
|
|
### Antigen
|
|
[ ! -f "$HOME/.local/scripts/antigen.zsh" ] || source "$HOME/.local/scripts/antigen.zsh"
|
|
|
|
if command -v antigen > /dev/null; then
|
|
# Fix for oh-my-zsh overriding eza aliases
|
|
export DISABLE_LS_COLORS=true
|
|
# Official Oh-My-ZSH plugins
|
|
antigen use oh-my-zsh
|
|
antigen bundle adb
|
|
# antigen bundle bazel # Unused
|
|
# antigen bundle colored-man-pages
|
|
antigen bundle command-not-found
|
|
antigen bundle copybuffer
|
|
# TODO: Add as an alias available to Bash as well
|
|
antigen bundle encode64
|
|
# antigen bundle fd # Added by bash completions scriptx``
|
|
# antigen bundle flutter /Users/bzalewski/.local/antigen/bundles/robbyrussell/oh-my-zsh/plugins/flutter/flutter.plugin.zsh:29: no such file or directory: /Users/bzalewski/.local/antigen/bundles/robbyrussell/oh-my-zsh/cache//completions/_flutter
|
|
# antigen bundle fzf # Added by bash completions script
|
|
# antigen bundle gcloud # Added by bash completions script
|
|
antigen bundle gem
|
|
# antigen bundle gh # Added by bash completions script
|
|
antigen bundle git-auto-fetch
|
|
antigen bundle git-extras
|
|
antigen bundle git-flow
|
|
antigen bundle gitfast
|
|
antigen bundle github
|
|
# antigen bundle gnu-utils
|
|
antigen bundle golang
|
|
# antigen bundle gpg-agent
|
|
# antigen bundle gradle # Added by bash completions script
|
|
# antigen bundle helm # Added by bash completions script
|
|
antigen bundle heroku
|
|
antigen bundle httpie
|
|
antigen bundle ionic
|
|
antigen bundle ipfs
|
|
antigen bundle isodate
|
|
# antigen bundle keychain
|
|
antigen bundle kn
|
|
# antigen bundle kubectl # Added by bash completions script
|
|
antigen bundle kubectx
|
|
antigen bundle last-working-dir
|
|
antigen bundle lxd
|
|
antigen bundle macos
|
|
antigen bundle macports
|
|
antigen bundle magic-enter
|
|
antigen bundle marktext
|
|
antigen bundle microk8s
|
|
antigen bundle minikube
|
|
# Received error so disabling mongo-atlas
|
|
# /Users/bzalewski/.local/antigen/bundles/robbyrussell/oh-my-zsh/plugins/mongo-atlas/mongo-atlas.plugin.zsh:14: no such file or directory: /Users/bzalewski/.local/antigen/bundles/robbyrussell/oh-my-zsh/cache//completions/atlas
|
|
# antigen bundle mongo-atlas
|
|
antigen bundle mongocli
|
|
antigen bundle mosh
|
|
antigen bundle multipass
|
|
antigen bundle ng
|
|
antigen bundle node-docs
|
|
antigen bundle nomad
|
|
antigen bundle oc
|
|
antigen bundle pass
|
|
# antigen bundle pep8
|
|
antigen bundle pip
|
|
# antigen bundle pipenv
|
|
antigen bundle pm2
|
|
antigen bundle qrcode
|
|
antigen bundle react-native
|
|
antigen bundle redis-cli
|
|
antigen bundle ripgrep
|
|
# Received error so disabling rust
|
|
# /Users/bzalewski/.local/antigen/bundles/robbyrussell/oh-my-zsh/plugins/rust/rust.plugin.zsh:22: no such file or directory: /Users/bzalewski/.local/antigen/bundles/robbyrussell/oh-my-zsh/cache//completions/_rustup
|
|
# /Users/bzalewski/.local/antigen/bundles/robbyrussell/oh-my-zsh/plugins/rust/rust.plugin.zsh:23: no such file or directory: /Users/bzalewski/.local/antigen/bundles/robbyrussell/oh-my-zsh/cache//completions/_cargo
|
|
# antigen bundle rust
|
|
antigen bundle safe-paste
|
|
antigen bundle sdk
|
|
# antigen bundle skaffold
|
|
antigen bundle spring
|
|
# antigen bundle shell-proxy
|
|
# On macOS, parse error 6/13/23 for sprunge
|
|
# antigen bundle sprunge
|
|
# antigen bundle ssh-agent
|
|
antigen bundle sudo
|
|
antigen bundle terraform
|
|
antigen bundle timer
|
|
antigen bundle tmuxinator
|
|
antigen bundle urltools
|
|
antigen bundle ufw
|
|
antigen bundle vagrant
|
|
# antigen bundle volta # Added by bash completions script
|
|
antigen bundle web-search
|
|
# antigen bundle wp-cli # Added by bash completions script
|
|
antigen bundle yarn
|
|
|
|
if [ ! -d /Applications ]; then
|
|
# Plugins that are troublesome on macOS due to Docker Desktop needing to launch
|
|
antigen bundle docker
|
|
antigen bundle docker-compose
|
|
fi
|
|
|
|
# Third-party plugins
|
|
# antigen bundle jscutlery/nx-completion Installing jscutlery/nx-completion... Error! Activate logging and try again.
|
|
# antigen bundle lukechilds/zsh-better-npm-completion
|
|
antigen bundle wfxr/forgit
|
|
|
|
antigen bundle zsh-interactive-cd
|
|
antigen bundle zsh-navigation-tools
|
|
antigen bundle zsh-users/zsh-completions src
|
|
! command -v fzf > /dev/null || antigen bundle aloxaf/fzf-tab
|
|
antigen bundle marlonrichert/zsh-autocomplete@main
|
|
antigen bundle zsh-users/zsh-autosuggestions
|
|
antigen bundle zsh-users/zsh-syntax-highlighting
|
|
[ ! -d /Applications ] || antigen bundle zsh-apple-touchbar
|
|
antigen theme romkatv/powerlevel10k
|
|
antigen apply
|
|
fi
|
|
|
|
### ZSH Autocomplete
|
|
zstyle ':autocomplete:*' list-lines 14
|
|
zstyle ':autocomplete:history-search:*' list-lines 14
|
|
zstyle ':autocomplete:history-incremental-search-*:*' list-lines 14
|
|
! command -v fzf > /dev/null || zstyle ':autocomplete:*' fzf-completion yes
|
|
|
|
### Homebrew ZSH Completions
|
|
# Must be sourced before compinit / Oh-My-ZSH inclusion
|
|
export FPATH="$HOMEBREW_PREFIX/share/zsh/site-functions:$FPATH"
|
|
[ ! -d "$HOMEBREW_PREFIX/share/zsh-completions" ] || export FPATH="$HOMEBREW_PREFIX/share/zsh-completions:$FPATH"
|
|
[ ! -d "${XDG_DATA_HOME:-$HOME/.local/share}/zsh-completion" ] || export FPATH="${XDG_DATA_HOME:-$HOME/.local/share}/zsh-completion:$FPATH"
|
|
|
|
### ZSH compinit
|
|
autoload -Uz +X compinit && compinit -d "${XDG_CACHE_HOME:-$HOME/.cache}/zsh/zcompdump-$ZSH_VERSION"
|
|
|
|
### Bash Completions
|
|
autoload -U +X bashcompinit && bashcompinit
|
|
[ ! -f "/usr/local/etc/profile.d/bash_completion.sh" ] || source "/usr/local/etc/profile.d/bash_completion.sh"
|
|
|
|
### Atuin
|
|
! command -v atuin > /dev/null || eval "$(atuin init zsh)"
|
|
|
|
### Carapace
|
|
if command -v carapace > /dev/null; then
|
|
zstyle ':completion:*' format $'\e[2;37mCompleting %d\e[m'
|
|
zstyle ':completion:*:git:*' group-order 'main commands' 'alias commands' 'external commands'
|
|
source <(carapace _carapace)
|
|
fi
|
|
|
|
### Cod
|
|
! command -v cod > /dev/null || source <(cod init $$ zsh)
|
|
|
|
### Conda
|
|
# if command -v conda > /dev/null && [ -f "${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/bin/conda" ]; then
|
|
# __conda_setup="$("${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/bin/conda" "shell.zsh" "hook" 2> /dev/null)"
|
|
# if [ $? -eq 0 ]; then
|
|
# eval "$__conda_setup"
|
|
# else
|
|
# if [ -f "${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/etc/profile.d/conda.sh" ]; then
|
|
# . "${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/etc/profile.d/conda.sh"
|
|
# else
|
|
# export PATH="${HOMEBREW_PREFIX:-/opt/homebrew}/Caskroom/mambaforge/base/bin:$PATH"
|
|
# fi
|
|
# fi
|
|
# fi
|
|
|
|
### direnv
|
|
! command -v direnv > /dev/null || eval "$(direnv hook zsh)"
|
|
|
|
### Emplace
|
|
# Error tracking: https://github.com/tversteeg/emplace/issues/375
|
|
# ! command -v emplace > /dev/null || eval "$(emplace init zsh)"
|
|
|
|
### Google Cloud SDK
|
|
[ ! -f "$HOMEBREW_PREFIX/share/google-cloud-sdk/path.zsh.inc" ] || source "$HOMEBREW_PREFIX/share/google-cloud-sdk/path.zsh.inc"
|
|
[ ! -f "$HOMEBREW_PREFIX/share/google-cloud-sdk/completion.zsh.inc" ] || source "$HOMEBREW_PREFIX/share/google-cloud-sdk/completion.zsh.inc"
|
|
|
|
### Goto
|
|
[ -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/goto.sh" ] || source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/goto.sh"
|
|
|
|
### hiSHtory
|
|
export PATH="$PATH:${XDG_CONFIG_HOME:-$HOME/.config}/hishtory"
|
|
[ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/hishtory/config.zsh" ] || source "${XDG_CONFIG_HOME:-$HOME/.config}/hishtory/config.zsh"
|
|
|
|
### Hoard
|
|
if command -v hoard > /dev/null && [ -f "${XDG_DATA_HOME:-$HOME/.local/share}/hoard/src/shell/hoard.zsh" ]; then
|
|
source "${XDG_DATA_HOME:-$HOME/.local/share}/hoard/src/shell/hoard.zsh"
|
|
fi
|
|
|
|
### iTerm2
|
|
[ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/iterm/iterm2.zsh" ] || source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/iterm/iterm2.zsh"
|
|
|
|
### mise
|
|
! command -v mise > /dev/null || eval "$(mise activate zsh)"
|
|
|
|
### Navi (Ctrl+G)
|
|
! command -v navi > /dev/null || eval "$(navi widget zsh)"
|
|
|
|
### ntfy
|
|
! command -v ntfy > /dev/null || eval "$(ntfy shell-integration)"
|
|
|
|
### Fig
|
|
[ ! -f "$HOME/.fig/shell/zshrc.post.zsh" ] || source "$HOME/.fig/shell/zshrc.post.zsh"
|
|
|
|
### pkgx
|
|
! command -v pkgx > /dev/null || source <(pkgx --shellcode)
|
|
|
|
### Powerline
|
|
[ ! -f "${XDG_CONFIG_HOME:-$HOME/.config}/shell/p10k.zsh" ] || source "${XDG_CONFIG_HOME:-$HOME/.config}/shell/p10k.zsh"
|
|
|
|
### RTX
|
|
! command -v rtx > /dev/null || eval "$(rtx activate zsh)"
|
|
|
|
### SDKMan
|
|
### Using mise instead for Java handling
|
|
# if command -v brew > /dev/null && command -v sdkman-cli > /dev/null; then
|
|
# export SDKMAN_DIR="$(brew --prefix sdkman-cli)/libexec"
|
|
# . "$SDKMAN_DIR/bin/sdkman-init.sh"
|
|
# elif [ -f "$SDKMAN_DIR/bin/sdkman-init.sh" ]; then
|
|
# export SDKMAN_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/sdkman"
|
|
# . "$SDKMAN_DIR/bin/sdkman-init.sh"
|
|
# fi
|
|
|
|
### Sheldon
|
|
export SHELDON_CONFIG_FILE="${SHELDON_CONFIG_DIR:-${XDG_CONFIG_HOME:-$HOME/.config}/sheldon}/plugins.zsh.toml"
|
|
! command -v sheldon > /dev/null || eval "$(command sheldon source)"
|
|
|
|
### Up
|
|
[ ! -f "${XDG_DATA_HOME:-$HOME/.local/share}/up/up.sh" ] || source "${XDG_DATA_HOME:-$HOME/.local/share}/up/up.sh"
|
|
|
|
### HashiCorp Vault
|
|
! command -v vault > /dev/null || complete -o nospace -C vault vault
|
|
|
|
### zoxide
|
|
if command -v zoxide > /dev/null; then
|
|
zstyle ':autocomplete:recent-dirs' backend zoxide
|
|
eval "$(zoxide init zsh)"
|
|
else
|
|
alias z='cd'
|
|
fi
|