shelly/XDG_shenanigans.sh
2024-02-19 17:47:26 +00:00

87 lines
3.7 KiB
Bash

#!/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