# this is my zsh config. there are many like it, but this one is mine. # shellcheck shell=bash # Defaults export DOTFILES="$HOME/.dotfiles" export DOTFILES_SHARED_LOADED="" # shellcheck source=scripts/shared.sh source "$DOTFILES/scripts/shared.sh" export COMPLETION_WAITING_DOTS=true # Run x-load-configs in your terminal to reload the files. function x-load-configs() { # Load the shell dotfiles, and then some: for file in $DOTFILES/config/{exports,alias,functions}; do HOST="$(hostname -s)" # global (exports|alias|functions) file for all hosts # shellcheck source=../config/exports [ -r "$file" ] && source "$file" # global secret file, git ignored # shellcheck source=../config/exports-secret [ -r "$file-secret" ] && source "$file-secret" # host specific (exports|alias|functions) file # shellcheck source=../config/exports [ -r "$file-$HOST" ] && source "$file-$HOST" # host specific (exports|alias|functions) file, git ignored # shellcheck source=../config/exports [ -r "$file-$HOST-secret" ] && source "$file-$HOST-secret" done } x-load-configs export ZSH_CUSTOM_COMPLETION_PATH="$XDG_CONFIG_HOME/zsh/completion" x-dc "$ZSH_CUSTOM_COMPLETION_PATH" # Add completion scripts to zsh path FPATH="$ZSH_CUSTOM_COMPLETION_PATH:$FPATH" if type brew &> /dev/null; then FPATH="$HOMEBREW_PREFIX/share/zsh/site-functions:${FPATH}" fi # Try to load antigen, if present ANTIGEN_ZSH_PATH="$XDG_BIN_HOME/antigen.zsh" # shellcheck source=../../.local/bin/antigen.zsh [[ -f "$ANTIGEN_ZSH_PATH" ]] && source "$ANTIGEN_ZSH_PATH" # antigen is present antigen use oh-my-zsh export ZSH_TMUX_AUTOSTART=false export ZSH_TMUX_CONFIG="$DOTFILES/config/tmux/tmux.conf" export ZSH_TMUX_UNICODE=true export ZSH_TMUX_AUTOQUIT=false export ZSH_TMUX_DEFAULT_SESSION_NAME=main export NVM_DIR="$XDG_CONFIG_HOME/nvm" export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc # z, the zsh version export ZSHZ_DATA="$XDG_STATE_HOME/z" antigen bundle z # these should be always available antigen bundle tmux antigen bundle colored-man-pages antigen bundle command-not-found antigen bundle ssh-agent antigen bundle jreese/zsh-titles antigen bundle unixorn/autoupdate-antigen.zshplugin antigen bundle zsh-users/zsh-completions # prettier history search antigen bundle zsh-history-substring-search bindkey "${terminfo[kcuu1]}" history-substring-search-up bindkey "${terminfo[kcud1]}" history-substring-search-down bindkey -M vicmd 'k' history-substring-search-up bindkey -M vicmd 'j' history-substring-search-down # these should be available if there's need have brew && antigen bundle brew have php && antigen bundle php have python && antigen bundle MichaelAquilina/zsh-autoswitch-virtualenv # nvm is a strange beast zstyle ':omz:plugins:nvm' autoload yes antigen bundle nvm # antigen bundle "$DOTFILES/config/zsh/plugins/nvm-auto-use" # nice to have stuff antigen bundle gcloud # this needs to be the last item antigen bundle zsh-users/zsh-syntax-highlighting antigen apply # shellcheck source=../config/fzf/fzf.zsh [ -f "${DOTFILES}/config/fzf/fzf.zsh" ] \ && source "${DOTFILES}/config/fzf/fzf.zsh" # Start starship eval "$(starship init zsh)"