diff --git a/Readme.md b/Readme.md index 98b5773..2edcad4 100644 --- a/Readme.md +++ b/Readme.md @@ -30,6 +30,9 @@ must have the extension `.sh` to be detected. After this the XDG shenanigans are performed, again inspect the file to see what it does. Overrides go in `overrides.d/XDG` +They will be loaded before the XDG_shenanigans so that overrides can work, +and system variables can be pulled in. To disable a system variable you +just need to `unset VARIABLE` in your override file Next is program_config, same rules. diff --git a/XDG_shenanigans.sh b/XDG_shenanigans.sh index 60c2a76..ed7a1bb 100644 --- a/XDG_shenanigans.sh +++ b/XDG_shenanigans.sh @@ -24,63 +24,63 @@ export XDG_STATE_HOME="$HOME"/.local/state # - I will also attempt to keep this in alphabetical order # android-studio -export ANDROID_HOME="$XDG_DATA_HOME"/android -export ANDROID_USER_HOME="$ANDROID_HOME" -export ANDROID_AVD_HOME="$ANDROID_HOME/avd" +[ -z "$ANDROID_HOME" ] && export ANDROID_HOME="$XDG_DATA_HOME"/android +[ -z "$ANDROID_USER_HOME" ] && export ANDROID_USER_HOME="$ANDROID_HOME" +[ -z "$ANDROID_AVD_HOME" ] && export ANDROID_AVD_HOME="$ANDROID_HOME/avd" # Cabal -export CABAL_CONFIG="$XDG_CONFIG_HOME"/cabal/config -export CABAL_DIR="$XDG_DATA_HOME"/cabal +[ -z "$CABAL_CONFIG" ] && export CABAL_CONFIG="$XDG_CONFIG_HOME"/cabal/config +[ -z "$CABAL_DIR" ] && export CABAL_DIR="$XDG_DATA_HOME"/cabal # cargo -export CARGO_HOME="$XDG_DATA_HOME"/cargo +[ -z "$CARGO_HOME" ] && export CARGO_HOME="$XDG_DATA_HOME"/cargo # Cuda cache -export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv +[ -z "$CUDA_CACHE_PATH" ] && export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv # dotnet snap - this might be a me-only thing? -## Provided by PORTAGE -# export DOTNET_ROOT="$HOME/.local/opt/dotnet" +[ -z "$DOTNET_ROOT" ] && export DOTNET_ROOT="$HOME/.local/opt/dotnet" # gem cache -export GEM_SPEC_CACHE="${XDG_CACHE_HOME}"/gem +[ -z "$GEM_SPEC_CACHE" ] && export GEM_SPEC_CACHE"${XDG_CACHE_HOME}"/gem +## Provided by PORTAGE # gem -export GEM_HOME="${XDG_DATA_HOME}"/gem +[ -z "$GEM_HOME" ] && export GEM_HOME="${XDG_DATA_HOME}"/gem # GHCUP -export GHCUP_USE_XDG_DIRS=1 +[ -z "$GHCUP_USE_XDG_DIRS" ] && export GHCUP_USE_XDG_DIRS=1 # GNUPG -export GNUPGHOME="$XDG_DATA_HOME"/gnupg +[ -z "$GNUPGHOME" ] && export GNUPGHOME="$XDG_DATA_HOME"/gnupg # go -export GOPATH="$XDG_DATA_HOME"/go +[ -z "$GOPATH" ] && export GOPATH="$XDG_DATA_HOME"/go # Gradle -export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle +[ -z "$GRADLE_USER_HOME" ] && export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle # GTK 2 -export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc +[ -z "$GTK2_RC_FILES" ] && export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc # jupyter -export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter +[ -z "$JUPYTER_CONFIG_DIR" ] && export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter # kde -export KDEHOME="$XDG_DATA_HOME"/kde +[ -z "$KDEHOME" ] && export KDEHOME="$XDG_DATA_HOME"/kde # Kodi -export KODI_DATA="$XDG_DATA_HOME"/kodi +[ -z "$KODI_DATA" ] && export KODI_DATA="$XDG_DATA_HOME"/kodi # Less History -export LESSHISTFILE="$XDG_CACHE_HOME"/less/history +[ -z "$LESSHISTFILE" ] && export LESSHISTFILE="$XDG_CACHE_HOME"/less/history # npm -export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc +[ -z "$NPM_CONFIG_USERCONFIG" ] && export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc # NuGet -export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages +[ -z "$NUGET_PACKAGES" ] && export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages # OPAM -export OPAMROOT="$XDG_DATA_HOME/opam" +[ -z "$OPAMROOT" ] && export OPAMROOT="$XDG_DATA_HOME/opam" # Parallel -export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel +[ -z "$PARALLEL_HOME" ] && export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel # Pass -export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass +[ -z "$PASSWORD_STORE_DIR" ] && export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass # pylint -export PYLINTHOME="${XDG_CACHE_HOME}"/pylint +[ -z "$PYLINTHOME" ] && export PYLINTHOME="${XDG_CACHE_HOME}"/pylint # Python history -export PYTHONSTARTUP="${XDG_CONFIG_HOME}/python/pythonrc" +[ -z "$PYTHONSTARTUP" ] && export PYTHONSTARTUP="${XDG_CONFIG_HOME}/python/pythonrc" # Rustup -export RUSTUP_HOME="$XDG_DATA_HOME"/rustup +[ -z "$RUSTUP_HOME" ] && export RUSTUP_HOME="$XDG_DATA_HOME"/rustup # Stack -export STACK_ROOT="$XDG_DATA_HOME"/stack +[ -z "$STACK_ROOT" ] && export STACK_ROOT="$XDG_DATA_HOME"/stack # TERMINFO -export TERMINFO="$XDG_DATA_HOME"/terminfo -export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo +[ -z "$TERMINFO" ] && export TERMINFO="$XDG_DATA_HOME"/terminfo +[ -z "$TERMINFO_DIRS" ] && export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo # wine -export WINEPREFIX="$XDG_DATA_HOME"/wine +[ -z "$WINEPREFIX" ] && export WINEPREFIX="$XDG_DATA_HOME"/wine # XCURSOR -export XCURSOR_PATH=/usr/share/icons:${XDG_DATA_HOME}/icons +[ -z "$XCURSOR_PATH" ] && export XCURSOR_PATH=/usr/share/icons:${XDG_DATA_HOME}/icons diff --git a/shelly.sh b/shelly.sh index e3de3cb..99de203 100644 --- a/shelly.sh +++ b/shelly.sh @@ -15,13 +15,13 @@ if [ -d "${SHELLY}/overrides.d/programs" ]; then done fi -. "${SHELLY}/XDG_shenanigans.sh" if [ -d "${SHELLY}/overrides.d/XDG" ]; then for file in "${SHELLY}"/overrides.d/XDG/*.sh ; do # shellcheck disable=SC1090 [ -f "$file" ] && . "$file" done fi +. "${SHELLY}/XDG_shenanigans.sh" . "${SHELLY}/program_config.sh" if [ -d "${SHELLY}/overrides.d/program_config" ]; then