diff --git a/.zshenv b/.zshenv index 0edd2b3..392ac5f 100644 --- a/.zshenv +++ b/.zshenv @@ -1,4 +1,15 @@ -: ${XDG_CONFIG_HOME:=~/.config} ${XDG_CACHE_HOME:=~/.cache} ${XDG_DATA_HOME:=~/.local/share} ${XDG_RUNTIME_DIR:=$TMPDIR} +# Initialise each of the XDG vars to their default values if they're unset. +: ${XDG_CACHE_HOME:=~/.cache} +: ${XDG_CONFIG_HOME:=~/.config} +: ${XDG_DATA_HOME:=~/.local/share} + +# For XDG_RUNTIME_DIR, pick a temporary directory - officially it should be +# destroyed when the user logs out but close enough. The reason for suffixing +# /xdg-$USER is that TMPDIR does not necessarily belong to the current user +# exclusively (although it does under MacOS and PAM). +[[ -z $XDG_RUNTIME_DIR ]] && XDG_RUNTIME_DIR=${TMPDIR%/}/xdg-$USER export XDG_CONFIG_HOME XDG_CACHE_HOME XDG_DATA_HOME XDG_RUNTIME_DIR + +# The real zsh config lives in XDG_CONFIG_HOME! ;) : ${ZDOTDIR:=$XDG_CONFIG_HOME/zsh} source $ZDOTDIR/zshenv