# .zshrc # Zsh Configuration export ZSH="$HOME/.oh-my-zsh" PROMPT="%B%~%b :: " RPROMPT="%n@%m" # Plugins plugins=(git zsh-syntax-highlighting zsh-autosuggestions sudo rclone rust nvm golang conda pyenv) source $ZSH/oh-my-zsh.sh # 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 # Add to PATH export PATH="$HOME/.local/bin:$CARGO_HOME/bin:$PATH" export PATH="$GOPATH/bin:$PATH"