63 lines
1.5 KiB
Bash
63 lines
1.5 KiB
Bash
# .zshrc
|
|
|
|
# Zsh Configuration
|
|
export ZSH="$HOME/.oh-my-zsh"
|
|
|
|
PROMPT="%B%~%b :: "
|
|
RPROMPT="%n@%m"
|
|
|
|
# Programming Languages Root
|
|
export PROG_DIR="$HOME/.programming"
|
|
|
|
# 1. Go and GVM (Black Box)
|
|
export GVM_ROOT="$PROG_DIR/go"
|
|
# Only source if the custom GVM exists
|
|
[[ -s "$GVM_ROOT/scripts/gvm" ]] && source "$GVM_ROOT/scripts/gvm"
|
|
|
|
# 2. Node and NVM (Lazy Load)
|
|
export NVM_DIR="$PROG_DIR/node"
|
|
|
|
nvm_load() {
|
|
echo "💤 Waking up NVM..."
|
|
unset -f nvm node npm npx
|
|
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
|
|
"$@"
|
|
}
|
|
|
|
nvm() { nvm_load "nvm" "$@"; }
|
|
node() { nvm_load "node" "$@"; }
|
|
npm() { nvm_load "npm" "$@"; }
|
|
npx() { nvm_load "npx" "$@"; }
|
|
|
|
# 3. Rust and Cargo
|
|
export RUSTUP_HOME="$PROG_DIR/rust/multirust"
|
|
export CARGO_HOME="$PROG_DIR/rust/cargo"
|
|
|
|
# 4. Python (Pyenv + Miniconda)
|
|
export PYENV_ROOT="$PROG_DIR/python/pyenv"
|
|
export PATH="$PYENV_ROOT/bin:$PATH"
|
|
|
|
if command -v pyenv 1>/dev/null 2>&1; then
|
|
eval "$(pyenv init -)"
|
|
fi
|
|
|
|
if command -v conda >/dev/null 2>&1; then
|
|
CONDA_BASE=$(conda info --base)
|
|
[ -f "$CONDA_BASE/etc/profile.d/conda.sh" ] && source "$CONDA_BASE/etc/profile.d/conda.sh"
|
|
fi
|
|
|
|
# Zoxide
|
|
eval "$(zoxide init --cmd cd zsh)"
|
|
|
|
# Source Aliases & Secrets
|
|
[ -f ~/.zsh_aliases ] && source ~/.zsh_aliases
|
|
[ -f ~/.zsh_secrets ] && source ~/.zsh_secrets
|
|
|
|
# Plugins
|
|
plugins=(git zsh-syntax-highlighting zsh-autosuggestions sudo rclone rust nvm golang conda pyenv)
|
|
|
|
source $ZSH/oh-my-zsh.sh
|
|
|
|
# Add to PATH
|
|
export PATH="$HOME/.local/bin:$CARGO_HOME/bin:$PATH"
|
|
export PATH="$GOPATH/bin:$PATH" |