Skip to content

Commit 75d604e

Browse files
committed
WIP
1 parent 3ad8743 commit 75d604e

File tree

2 files changed

+156
-78
lines changed

2 files changed

+156
-78
lines changed

fish/conf.d/00_global_vars.fish

Lines changed: 154 additions & 77 deletions
Original file line numberDiff line numberDiff line change
@@ -1,129 +1,204 @@
1-
set -gx EDITOR vim
2-
set -gx VISUAL vim
3-
set -gx SHELL /opt/homebrew/bin/fish
4-
5-
# Ensure XDG variables are set
1+
# ============================================================================
2+
# Fish Shell Global Environment Variables Configuration
3+
# ============================================================================
4+
# Author: Gilad Peleg
5+
# Last Updated: June 2025
6+
# Description: Global environment variables for Fish shell, organized by
7+
# category and following XDG Base Directory specification
8+
# ============================================================================
9+
10+
# ============================================================================
11+
# XDG Base Directory Specification
12+
# ============================================================================
13+
# Standard directories for configuration, data, cache, and runtime files
614
set -q XDG_CONFIG_HOME; or set -gx XDG_CONFIG_HOME "$HOME/.config"
715
set -q XDG_DATA_HOME; or set -gx XDG_DATA_HOME "$HOME/.local/share"
816
set -q XDG_CACHE_HOME; or set -gx XDG_CACHE_HOME "$HOME/.cache"
17+
set -q XDG_RUNTIME_DIR; or set -gx XDG_RUNTIME_DIR "/tmp/runtime-$USER"
918

19+
# Custom directory for storing application history files
1020
set -gx APPLICATIONS_HISTORY_PATH "$XDG_DATA_HOME/history"
1121

12-
# Much faster than brew --prefix which depends on Ruby slow start time
13-
set -gx BREW_PREFIX /opt/homebrew/opt
14-
set -gx HOMEBREW_NO_ENV_HINTS 1
15-
16-
set -gx GPG_TTY (tty)
17-
set -gx SSH_KEY_PATH "$HOME/.ssh"
18-
set -gx SSH_AUTH_SOCK "$HOME/.1password/agent.sock"
22+
# ============================================================================
23+
# Global System Settings
24+
# ============================================================================
25+
# Default editors and shell configuration
26+
set -gx EDITOR vim
27+
set -gx VISUAL vim
28+
set -gx SHELL /opt/homebrew/bin/fish
1929

30+
# Locale settings for proper character encoding
2031
set -gx LANG en_US.UTF-8
2132
set -gx LC_ALL en_US.UTF-8
2233

23-
set -gx OPENSSL_PATH "$BREW_PREFIX/openssl@3"
24-
34+
# Default pager with syntax highlighting
2535
set -gx PAGER bat
26-
set -gx LIBRARY_PATH "$OPENSSL_PATH/lib/"
27-
28-
# Don't use a pager by default in AWS calls
29-
set -gx AWS_PAGER ""
30-
31-
# Yucky brew workaround for building apps
32-
# for pkg in openssl curl readline gettext ncurses icu4c sqlite zlib mysql-client tcl-tk libxml2
33-
# set -gx CFLAGS "-I/usr/local/opt/$pkg/include" $CFLAGS
34-
# set -gx CPPFLAGS "-I/usr/local/opt/$pkg/include" $CPPFLAGS
35-
# set -gx LD_RUN_PATH "/usr/local/opt/$pkg/lib" $LD_RUN_PATH
36-
# set -gx LDFLAGS "-L/usr/local/opt/$pkg/lib" $LDFLAGS
37-
# set -gx PKG_CONFIG_PATH "/usr/local/opt/$pkg/lib/pkgconfig" $PKG_CONFIG_PATH
38-
# end
3936

40-
# Required for tinker builds of pyenv's python
41-
# set -gx PYTHON_CONFIGURE_OPTS "--with-tcltk-includes='-I$BREW_PREFIX/tcl-tk/include' --with-tcltk-libs='-L$BREW_PREFIX/tcl-tk/lib -ltcl8.6 -ltk8.6'"
42-
# set -gx DYLD_FALLBACK_LIBRARY_PATH "$OPENSSL_PATH/lib"
37+
# TTY setting for GPG operations
38+
set -gx GPG_TTY (tty)
4339

40+
# Color configuration for grep output
4441
set -gx GREP_COLOR "1;37;45"
4542

46-
# set -q JAVA_HOME; or set -gx JAVA_HOME "/Users/giladpeleg/.asdf/installs/java/adoptopenjdk-11.0.11+9"
47-
set -q GRADLE_USER_HOME; or set -gx GRADLE_USER_HOME "$XDG_DATA_HOME/gradle"
43+
# ============================================================================
44+
# System Paths and Libraries
45+
# ============================================================================
46+
# Fast access to Homebrew prefix without calling slow `brew --prefix`
47+
set -gx BREW_PREFIX /opt/homebrew/opt
4848

49-
# Rust - cargo
50-
set -gx CARGOBIN "$HOME/cargo/.bin"
49+
# OpenSSL configuration for secure connections
50+
set -gx OPENSSL_PATH "$BREW_PREFIX/openssl@3"
51+
set -gx LIBRARY_PATH "$OPENSSL_PATH/lib/"
5152

52-
set -gx LESSHISTFILE "$APPLICATIONS_HISTORY_PATH/less_history"
53-
set -gx LESSKEY "$XDG_CONFIG_HOME/less/keys"
53+
# ============================================================================
54+
# Security and Authentication
55+
# ============================================================================
56+
# SSH configuration
57+
set -gx SSH_KEY_PATH "$HOME/.ssh"
58+
set -gx SSH_AUTH_SOCK "$HOME/.1password/agent.sock"
5459

55-
# A hack for https://github.com/gatsbyjs/gatsby/issues/6654
56-
set -gx GATSBY_CONCURRENT_DOWNLOAD 25
60+
# Password manager configuration
61+
set -gx PASSWORD_STORE_DIR "$XDG_DATA_HOME/password-store"
5762

58-
set -gx POETRY_VIRTUALENVS_PATH "$HOME/.virtualenvs"
63+
# Security settings
64+
set -gx NOCLOBBER 1
5965

60-
set -gx NPM_CONFIG_USERCONFIG "$XDG_CONFIG_HOME/npm/.npmrc"
61-
set -gx NPM_CONFIG_CACHE "$XDG_CACHE_HOME/npm"
66+
# GPG Suite doesn't support a different home for gnupg :(
67+
# set -gx GNUPGHOME "$XDG_CONFIG_HOME/gnupg"
6268

63-
# Opt out of brew analytics
69+
# ============================================================================
70+
# Package Managers and Tools
71+
# ============================================================================
72+
# Homebrew configuration
73+
set -gx HOMEBREW_NO_ENV_HINTS 1
6474
set -gx HOMEBREW_NO_ANALYTICS 1
75+
set -gx HOMEBREW_CASK_OPTS --no-quarantine
76+
77+
# pipx configuration
78+
set -gx PIPX_BIN_DIR "$HOME/.local/bin"
6579

66-
# Python
80+
# asdf version manager
81+
set -gx ASDF_CONFIG_FILE "$XDG_CONFIG_HOME/asdf/.asdfrc"
82+
83+
# mise configuration (manual control preferred)
84+
set -gx MISE_FISH_AUTO_ACTIVATE 0
85+
86+
# ============================================================================
87+
# Programming Languages and Runtimes
88+
# ============================================================================
89+
90+
# --- Python ---
91+
set -gx PYTHONIOENCODING utf-8
92+
set -gx PYTHONDONTWRITEBYTECODE 1
93+
set -gx PYTHONUNBUFFERED 1
6794
set -gx PIP_REQUIRE_VIRTUALENV true
6895
set -gx PIP_DEFAULT_TIMEOUT 30
6996
set -gx PIP_CACHE_DIR "$XDG_CACHE_HOME/pip"
97+
set -gx POETRY_VIRTUALENVS_PATH "$HOME/.virtualenvs"
98+
set -gx IPYTHONDIR "$XDG_CONFIG_HOME/jupyter"
99+
set -gx JUPYTER_CONFIG_DIR "$XDG_CONFIG_HOME/jupyter"
70100

71-
# Set pass password store location
72-
set -gx PASSWORD_STORE_DIR "$XDG_DATA_HOME/password-store"
101+
# --- Go ---
102+
set -gx GOPATH "$XDG_DATA_HOME/go"
103+
set -gx GOBIN "$GOPATH/bin"
104+
set -gx GO111MODULE on
105+
set -gx GOPROXY https://proxy.golang.org,direct
73106

74-
# GPG Suite doesn't support a different home for gnupg :(
75-
# set -gx GNUPGHOME "$XDG_CONFIG_HOME/gnupg"
107+
# --- Rust ---
108+
set -gx CARGOBIN "$HOME/.cargo/bin"
76109

77-
# Ruby bundler
110+
# --- Ruby ---
111+
set -gx GEM_HOME "$XDG_DATA_HOME/gem"
112+
set -gx GEM_SPEC_CACHE "$XDG_CACHE_HOME/gem"
78113
set -gx BUNDLE_USER_CACHE "$XDG_CACHE_HOME/bundle"
79114
set -gx BUNDLE_USER_CONFIG "$XDG_CONFIG_HOME/bundle"
80115
set -gx BUNDLE_USER_PLUGIN "$XDG_DATA_HOME/bundle"
81-
82-
# Ruby GEM
83-
set -gx GEM_HOME "$XDG_DATA_HOME/gem"
84-
set -gx GEM_SPEC_CACHE "$XDG_CACHE_HOME/gem"
85-
86116
set -gx RUBY_CONFIGURE_OPTS "--with-openssl-dir=$OPENSSL_PATH --with-readline-dir=$BREW_PREFIX/readline --with-libyaml-dir=$BREW_PREFIX/libyaml"
87-
# set -gx SDKROOT (xcrun --show-sdk-path)
88117

89-
# Docker - doesn't seem to work yet
90-
# set -gx DOCKER_CONFIG "$XDG_CONFIG_HOME/docker"
91-
92-
# Set iPython and Jupyter paths
93-
set -gx IPYTHONDIR "$XDG_CONFIG_HOME/jupyter"
94-
set -gx JUPYTER_CONFIG_DIR "$XDG_CONFIG_HOME/jupyter"
95-
96-
# Set NVM dir
118+
# --- Node.js and JavaScript ---
97119
set -gx NVM_DIR "$XDG_DATA_HOME/nvm"
98120
set -gx NODE_REPL_HISTORY "$APPLICATIONS_HISTORY_PATH/node_repl_history"
121+
set -gx NPM_CONFIG_USERCONFIG "$XDG_CONFIG_HOME/npm/.npmrc"
122+
set -gx NPM_CONFIG_CACHE "$XDG_CACHE_HOME/npm"
123+
set -gx BUN_INSTALL "$XDG_DATA_HOME/bun"
124+
set -gx DENO_DIR "$XDG_DATA_HOME/deno"
125+
set -gx DENO_INSTALL_ROOT "$XDG_DATA_HOME/deno/bin"
126+
set -gx PNPM_HOME "$XDG_DATA_HOME/pnpm"
127+
set -gx BABEL_CACHE_PATH "$XDG_CACHE_HOME/babel/babel.json"
128+
set -gx GATSBY_CONCURRENT_DOWNLOAD 25
129+
130+
# --- Java and JVM Languages ---
131+
# set -q JAVA_HOME; or set -gx JAVA_HOME "/Users/giladpeleg/.asdf/installs/java/adoptopenjdk-11.0.11+9"
132+
set -q GRADLE_USER_HOME; or set -gx GRADLE_USER_HOME "$XDG_DATA_HOME/gradle"
133+
set -gx LEIN_JVM_OPTS "-XX:+TieredCompilation -XX:TieredStopAtLevel=2"
99134

100-
# Set Haskell stack dir
135+
# --- Haskell ---
101136
set -gx STACK_ROOT "$XDG_DATA_HOME/stack"
102137

103-
# Httpie
104-
set -gx HTTPIE_CONFIG_DIR "$XDG_CONFIG_HOME/httpie"
138+
# ============================================================================
139+
# DevOps and Cloud Tools
140+
# ============================================================================
141+
# AWS configuration
142+
set -gx AWS_PAGER ""
105143

106-
# Use build enhancement for Docker
144+
# Docker configuration
107145
set -gx DOCKER_BUILDKIT 1
146+
set -gx COMPOSE_DOCKER_CLI_BUILD 1
147+
# set -gx DOCKER_CONFIG "$XDG_CONFIG_HOME/docker"
108148

109-
set -gx REDISCLI_HISTFILE "$APPLICATIONS_HISTORY_PATH/redis_history"
110-
set -gx SQLITE_HISTORY "$APPLICATIONS_HISTORY_PATH/sqlite_history"
149+
# Terraform configuration
150+
set -gx TF_CLI_CONFIG_FILE "$XDG_CONFIG_HOME/terraform/.terraformrc"
151+
set -gx TF_DATA_DIR "$XDG_DATA_HOME/terraform"
111152

112-
set -gx BABEL_CACHE_PATH "$XDG_CACHE_HOME/babel/babel.json"
153+
# Kubernetes configuration
154+
set -gx KUBECONFIG "$XDG_CONFIG_HOME/kubernetes/config"
155+
set -gx KUBECONFIGDIR "$XDG_CONFIG_HOME/kubernetes"
113156

157+
# ============================================================================
158+
# CLI Tools and Utilities
159+
# ============================================================================
160+
# Shell and prompt configuration
114161
set -gx STARSHIP_CONFIG "$XDG_CONFIG_HOME/starship/starship.toml"
162+
set -gx HISTSIZE 10000
163+
set -gx SAVEHIST 10000
115164

116-
set -gx PIPX_BIN_DIR "$HOME/.local/bin"
117-
set -gx PATH $PATH $PIPX_BIN_DIR
165+
# HTTP tools
166+
set -gx HTTPIE_CONFIG_DIR "$XDG_CONFIG_HOME/httpie"
118167

119-
# Clojure lein
120-
set -gx LEIN_JVM_OPTS "-XX:+TieredCompilation -XX:TieredStopAtLevel=2"
168+
# Text processing and pagers
169+
set -gx LESSHISTFILE "$APPLICATIONS_HISTORY_PATH/less_history"
170+
set -gx LESSKEY "$XDG_CONFIG_HOME/less/keys"
121171

122-
set -gx ASDF_CONFIG_FILE "$XDG_CONFIG_HOME/asdf/.asdfrc"
172+
# Database CLI tools
173+
set -gx REDISCLI_HISTFILE "$APPLICATIONS_HISTORY_PATH/redis_history"
174+
set -gx SQLITE_HISTORY "$APPLICATIONS_HISTORY_PATH/sqlite_history"
123175

124-
set -gx MISE_FISH_AUTO_ACTIVATE 0
176+
# AI and Development Tools
177+
set -gx CLAUDE_CODE_USE_BEDROCK 1
178+
179+
# ============================================================================
180+
# Optional/Commented Configurations
181+
# ============================================================================
182+
# macOS SDK path (uncomment if needed for native compilation)
183+
# set -gx SDKROOT (xcrun --show-sdk-path)
125184

185+
# Python build configuration for pyenv (uncomment if needed)
186+
# set -gx PYTHON_CONFIGURE_OPTS "--with-tcltk-includes='-I$BREW_PREFIX/tcl-tk/include' --with-tcltk-libs='-L$BREW_PREFIX/tcl-tk/lib -ltcl8.6 -ltk8.6'"
187+
# set -gx DYLD_FALLBACK_LIBRARY_PATH "$OPENSSL_PATH/lib"
188+
189+
# Homebrew build workaround (uncomment if encountering build issues)
190+
# for pkg in openssl curl readline gettext ncurses icu4c sqlite zlib mysql-client tcl-tk libxml2
191+
# set -gx CFLAGS "-I/usr/local/opt/$pkg/include" $CFLAGS
192+
# set -gx CPPFLAGS "-I/usr/local/opt/$pkg/include" $CPPFLAGS
193+
# set -gx LD_RUN_PATH "/usr/local/opt/$pkg/lib" $LD_RUN_PATH
194+
# set -gx LDFLAGS "-L/usr/local/opt/$pkg/lib" $LDFLAGS
195+
# set -gx PKG_CONFIG_PATH "/usr/local/opt/$pkg/lib/pkgconfig" $PKG_CONFIG_PATH
196+
# end
126197

198+
# ============================================================================
199+
# PATH Configuration
200+
# ============================================================================
201+
# Add binary directories to PATH in priority order
127202
fish_add_path --path \
128203
/usr/local/sbin \
129204
/opt/homebrew/sbin \
@@ -134,5 +209,7 @@ fish_add_path --path \
134209
$BREW_PREFIX/curl/bin \
135210
$GOBIN \
136211
$CARGOBIN \
137-
$XDG_DATA_HOME/npm-global-modules/bin
138-
212+
$XDG_DATA_HOME/npm-global-modules/bin \
213+
$BUN_INSTALL/bin \
214+
$DENO_INSTALL_ROOT \
215+
$PNPM_HOME

vscode/settings.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,5 +95,6 @@
9595
"[typescriptreact]": {
9696
"editor.defaultFormatter": "esbenp.prettier-vscode"
9797
},
98-
"git.blame.editorDecoration.enabled": true
98+
"git.blame.editorDecoration.enabled": true,
99+
"docker.extension.enableComposeLanguageServer": false
99100
}

0 commit comments

Comments
 (0)