#!/bin/sh ########################### # XDG shenanigans ########################### # - The XDG basedirs standard sets out where programs should put their # - files. Unfortunately there are programs that ignore this and just dump shit # - inside your home directory. This SUCKS so bad. # - Luckily you can actually configure a lot of those programs with Environment variables # - Here I do the best I can for what I have installed. (you may want to change things here) # - You can use the tool xdg-ninja https://github.com/b3nj5m1n/xdg-ninja to scan your home folder # - and find things to add here. # XDG Folders. # - First we need to explicitly place where these folders are on our system # - They can go anywhere (in your home directory). but these are the standard paths. export XDG_CONFIG_HOME="$HOME"/.config export XDG_DATA_HOME="$HOME"/.local/share export XDG_CACHE_HOME="$HOME"/.cache export XDG_STATE_HOME="$HOME"/.local/state # Applications # - This section is likely to be _VERY_ ugly looking. # - Generally the only comment will be saying what is being moved. # - I will also attempt to keep this in alphabetical order # android-studio [ -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 [ -z "$CABAL_CONFIG" ] && export CABAL_CONFIG="$XDG_CONFIG_HOME"/cabal/config [ -z "$CABAL_DIR" ] && export CABAL_DIR="$XDG_DATA_HOME"/cabal # cargo [ -z "$CARGO_HOME" ] && export CARGO_HOME="$XDG_DATA_HOME"/cargo # Cuda cache [ -z "$CUDA_CACHE_PATH" ] && export CUDA_CACHE_PATH="$XDG_CACHE_HOME"/nv # dotnet snap - this might be a me-only thing? [ -z "$DOTNET_ROOT" ] && export DOTNET_ROOT="$HOME/.local/opt/dotnet" # gem cache [ -z "$GEM_SPEC_CACHE" ] && export GEM_SPEC_CACHE="${XDG_CACHE_HOME}"/gem ## Provided by PORTAGE # gem [ -z "$GEM_HOME" ] && export GEM_HOME="${XDG_DATA_HOME}"/gem # GHCUP [ -z "$GHCUP_USE_XDG_DIRS" ] && export GHCUP_USE_XDG_DIRS=1 # GNUPG [ -z "$GNUPGHOME" ] && export GNUPGHOME="$XDG_DATA_HOME"/gnupg # go [ -z "$GOPATH" ] && export GOPATH="$XDG_DATA_HOME"/go # Gradle [ -z "$GRADLE_USER_HOME" ] && export GRADLE_USER_HOME="$XDG_DATA_HOME"/gradle # GTK 2 [ -z "$GTK2_RC_FILES" ] && export GTK2_RC_FILES="$XDG_CONFIG_HOME"/gtk-2.0/gtkrc # jupyter [ -z "$JUPYTER_CONFIG_DIR" ] && export JUPYTER_CONFIG_DIR="$XDG_CONFIG_HOME"/jupyter # kde [ -z "$KDEHOME" ] && export KDEHOME="$XDG_DATA_HOME"/kde # Kodi [ -z "$KODI_DATA" ] && export KODI_DATA="$XDG_DATA_HOME"/kodi # Less History [ -z "$LESSHISTFILE" ] && export LESSHISTFILE="$XDG_CACHE_HOME"/less/history # npm [ -z "$NPM_CONFIG_USERCONFIG" ] && export NPM_CONFIG_USERCONFIG="$XDG_CONFIG_HOME"/npm/npmrc # NuGet [ -z "$NUGET_PACKAGES" ] && export NUGET_PACKAGES="$XDG_CACHE_HOME"/NuGetPackages # OPAM [ -z "$OPAMROOT" ] && export OPAMROOT="$XDG_DATA_HOME/opam" # Parallel [ -z "$PARALLEL_HOME" ] && export PARALLEL_HOME="$XDG_CONFIG_HOME"/parallel # Pass [ -z "$PASSWORD_STORE_DIR" ] && export PASSWORD_STORE_DIR="$XDG_DATA_HOME"/pass # pylint [ -z "$PYLINTHOME" ] && export PYLINTHOME="${XDG_CACHE_HOME}"/pylint # Python history [ -z "$PYTHONSTARTUP" ] && export PYTHONSTARTUP="${XDG_CONFIG_HOME}/python/pythonrc" # Rustup [ -z "$RUSTUP_HOME" ] && export RUSTUP_HOME="$XDG_DATA_HOME"/rustup # Stack [ -z "$STACK_ROOT" ] && export STACK_ROOT="$XDG_DATA_HOME"/stack # TERMINFO [ -z "$TERMINFO" ] && export TERMINFO="$XDG_DATA_HOME"/terminfo [ -z "$TERMINFO_DIRS" ] && export TERMINFO_DIRS="$XDG_DATA_HOME"/terminfo:/usr/share/terminfo # wine [ -z "$WINEPREFIX" ] && export WINEPREFIX="$XDG_DATA_HOME"/wine # XCURSOR [ -z "$XCURSOR_PATH" ] && export XCURSOR_PATH=/usr/share/icons:${XDG_DATA_HOME}/icons