# ---- XDG base directories ---- $env.XDG_CONFIG_HOME = ($env.XDG_CONFIG_HOME? | default ($env.HOME | path join '.config')) $env.XDG_DATA_HOME = ($env.XDG_DATA_HOME? | default ($env.HOME | path join '.local/share')) $env.XDG_STATE_HOME = ($env.XDG_STATE_HOME? | default ($env.HOME | path join '.local/state')) $env.XDG_CACHE_HOME = ($env.XDG_CACHE_HOME? | default ($env.HOME | path join '.cache')) # macOS has no /run/user; use a per-user runtime dir inside the cache $env.XDG_RUNTIME_DIR = ($env.XDG_CACHE_HOME | path join 'run') mkdir $env.XDG_RUNTIME_DIR # ---- Homebrew ---- $env.HOMEBREW_PREFIX = '/opt/homebrew' $env.HOMEBREW_CELLAR = '/opt/homebrew/Cellar' $env.HOMEBREW_REPOSITORY = '/opt/homebrew' $env.MANPATH = (if ($env.MANPATH? | is-empty) { $env.HOMEBREW_PREFIX | path join 'share/man' } else { $'($env.HOMEBREW_PREFIX)/share/man:($env.MANPATH)' }) # ---- Rust / cargo ---- $env.CARGO_HOME = ($env.CARGO_HOME? | default ($env.HOME | path join '.local/share/cargo')) # ---- Guile ---- #$env.GUILE_LOAD_PATH = $"($env.HOME)/.local/share/guile/site/3. 0:($env.GUILE_LOAD_PATH? | default '')" #$env.GUILE_LOAD_COMPILED_PATH = $"($env.HOME)/.local/lib/guile/3. 0/site-ccache:($env.GUILE_LOAD_COMPILED_PATH? | default '')" $env.GUILE_LOAD_PATH = "/opt/homebrew/share/guile/site/3.0" $env.GUILE_LOAD_COMPILED_PATH = "/opt/homebrew/lib/guile/3.0/site-ccache" $env.GUILE_SYSTEM_EXTENSIONS_PATH = "/opt/homebrew/lib/guile/3.0/extensions" # ---- Apps ---- $env.WAKATIME_HOME = ($env.XDG_CONFIG_HOME | path join 'wakatime') $env.GITLIBS = ($env.XDG_STATE_HOME | path join 'clojure/gitlibs') $env.PASSWORD_STORE_DIR = ($env.XDG_DATA_HOME | path join 'pass') $env.NPM_CONFIG_CACHE = ($env.XDG_CACHE_HOME | path join 'npm') $env.NPM_CONFIG_INIT_MODULE = ($env.XDG_CONFIG_HOME | path join 'npm/config/npm-init.js') $env.HISTFILE = ($env.XDG_STATE_HOME | path join 'bash/history') $env.BUN_INSTALL = ($env.HOME | path join '.bun') $env.PNPM_HOME = ($env.HOME | path join '.local/share/pnpm') $env.NVM_DIR = ($env.HOME | path join '.config/nvm') $env.W3M_DIR = ($env.XDG_DATA_HOME | path join 'w3m') $env.PYTHON_HISTORY = ($env.XDG_STATE_HOME | path join 'python_history') $env.LEIN_HOME = ($env.XDG_DATA_HOME | path join 'lein') $env.RUSTUP_HOME = ($env.XDG_DATA_HOME | path join 'rustup') $env.GOPATH = ($env.XDG_DATA_HOME | path join 'go') $env.BABASHKA_REPL_HISTORY = ($env.XDG_STATE_HOME | path join 'babashka/repl_history') $env.LESSHISTFILE = ($env.XDG_STATE_HOME | path join 'lesshst') $env.NODE_REPL_HISTORY = ($env.XDG_STATE_HOME | path join 'node_repl_history') $env.MPLCONFIGDIR = ($env.XDG_CONFIG_HOME | path join 'matplotlib') $env.EDITOR = 'nvim' $env.HOMEBREW_NO_ENV_HINTS = '1' $env.PUPPETEER_EXECUTABLE_PATH = ($env.HOME | path join '.cache/puppeteer/chrome/mac_arm-142.0.7444.59/chrome-mac-arm64/Google Chrome for Testing.app/Contents/MacOS/Google Chrome for Testing') # GPG try { $env.GPG_TTY = (tty | str trim) } catch { } # Java # try { $env.JAVA_HOME = (/usr/libexec/java_home -v 17 | str trim) } catch { } # GraalVM try { $env.JAVA_HOME = '/Library/Java/JavaVirtualMachines/graalvm-jdk-25.4.4.1.1+1.1/Contents/Home' } # Temporary files let state_tmp = ($env.XDG_STATE_HOME | path join 'tmp') mkdir $state_tmp $env.TMPDIR = $state_tmp # ---- PATH ---- $env.PATH = ([ ($env.HOME | path join '.local/bin') # ~/.local/bin/env $env.PNPM_HOME # pnpm ($env.BUN_INSTALL | path join 'bin') # bun '/opt/nanobrew/prefix/bin' # nanobrew ($env.HOME | path join 'bin') # ~/bin '/Library/Frameworks/Python.framework/Versions/3.13/bin' # Python 3.13 (.zprofile) '/usr/local/bin' # macOS standard '/opt/homebrew/bin' # Homebrew '/opt/homebrew/sbin' # Homebrew ($env.CARGO_HOME | path join 'bin') # cargo/rustup (.zshenv) ...$env.PATH ($env.HOME | path join 'Library/Python/3.9/bin') # Python 3.9 (user) ($env.HOME | path join '.local/share/go/bin') # Go '/Library/Java/JavaVirtualMachines/graalvm-jdk-25.4.4.1.1+1.1/Contents/Home/bin' # GraalVM ] | uniq) # pnpm $env.PNPM_HOME = "/Users/eltrac/.local/share/pnpm" $env.PATH = ($env.PATH | split row (char esep) | prepend ($env.PNPM_HOME | path join "bin") ) # pnpm end source secrets.nu