# .zshrc # Zsh Configuration export ZSH="$HOME/.oh-my-zsh" # Programming Languages Root export PROG_DIR="$HOME/.programming" # Plugins plugins=(git zsh-syntax-highlighting zsh-autosuggestions sudo rclone) source $ZSH/oh-my-zsh.sh # Go and GVM (Black Box) export GOPATH="$PROG_DIR/go" export GVM_ROOT="$GOPATH" gvm_load() { unset -f gvm go gofmt [[ -s "$GVM_ROOT/scripts/gvm" ]] && source "$GVM_ROOT/scripts/gvm" "$@" } gvm() { gvm_load gvm "$@"; } go() { gvm_load go "$@"; } gofmt() { gvm_load gofmt "$@"; } # 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" "$@"; } # Rust and Cargo export RUSTUP_HOME="$PROG_DIR/rust/multirust" export CARGO_HOME="$PROG_DIR/rust/cargo" # Python (Pyenv + Miniconda) export PYENV_ROOT="$PROG_DIR/python/pyenv" export PATH="$PYENV_ROOT/bin:$PYENV_ROOT/shims:$PATH" export CONDA_ROOT="$PYENV_ROOT/versions/miniforge3-latest" pyenv_load() { unset -f pyenv eval "$(command pyenv init -)" pyenv "$@" } pyenv() { pyenv_load "$@"; } conda_load() { unset -f conda mamba [ -f "$CONDA_ROOT/etc/profile.d/conda.sh" ] && source "$CONDA_ROOT/etc/profile.d/conda.sh" "$@" } conda() { conda_load conda "$@"; } mamba() { conda_load mamba "$@"; } # R and Rig export RIG_HOME="$PROG_DIR/r" if [ -d "$RIG_HOME/bin" ]; then export PATH="$RIG_HOME/bin:$PATH" fi is_wsl() { [ -f /proc/version ] && grep -qEi "(Microsoft|WSL)" /proc/version } # Zoxide if command -v zoxide >/dev/null 2>&1; then eval "$(zoxide init --cmd cd zsh)" fi # 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:$GOPATH/bin:$PATH" # opencode if is_wsl && command -v openchamber >/dev/null 2>&1 && ! pgrep -f "openchamber.*7891" > /dev/null; then openchamber --port 7891 >/dev/null 2>&1 &! fi # direnv if command -v direnv >/dev/null 2>&1; then eval "$(direnv hook zsh)" fi # Completion Styling [ -f ~/.zsh_completion ] && source ~/.zsh_completion # Prompt Styling [ -f ~/.zsh_prompt ] && source ~/.zsh_prompt