summaryrefslogtreecommitdiff
path: root/nushell/env.nu
blob: e2f0f1d1009e2abbef16dd58abd4cb5dd407361c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# ---- 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')

# Proxy
$env.http_proxy = 'http://127.0.0.1:7890'
$env.https_proxy = 'http://127.0.0.1:7890'
$env.all_proxy = 'socks5://127.0.0.1:7890'
$env.no_proxy = 'localhost,127.0.0.1'

# 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