Clean up XDG_RUNTIME_DIR on last logout

This commit is contained in:
Danielle McLean 2016-10-23 14:48:29 +11:00
parent 735d3dac4d
commit f43d8a36fa
No known key found for this signature in database
GPG Key ID: CC91589719027E94
4 changed files with 16 additions and 6 deletions

1
config/zsh/.zlogout Symbolic link
View File

@ -0,0 +1 @@
zlogout

View File

@ -0,0 +1,2 @@
#! zsh
(( $(w -h $LOGNAME | wc -l) == 1 )) && rm -rf $XDG_RUNTIME_DIR

2
config/zsh/zlogout Normal file
View File

@ -0,0 +1,2 @@
#! zsh
for f in $ZDOTDIR/logout/*(N); source $f

17
zshenv
View File

@ -3,12 +3,17 @@
: ${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-/tmp}%/}/xdg-$LOGNAME
[[ -d $XDG_RUNTIME_DIR ]] || mkdir -p $XDG_RUNTIME_DIR
# For XDG_RUNTIME_DIR, pick a temporary directory - the spec actually
# *requires* that it's destroyed when the user logs out, so that's handled by a
# file in zlogout. The reason for suffixing /xdg-$UID is that TMPDIR does not
# necessarily belong to the current user exclusively (although it does under
# MacOS and PAM). This is especially true if $TMPDIR isn't set at all and /tmp
# is used!
[[ -z $XDG_RUNTIME_DIR ]] && XDG_RUNTIME_DIR=${${TMPDIR-/tmp}%/}/xdg-$UID
if ! [[ -d $XDG_RUNTIME_DIR ]]; then
mkdir -p $XDG_RUNTIME_DIR
chmod 0700 $XDG_RUNTIME_DIR
fi
export XDG_CONFIG_HOME XDG_CACHE_HOME XDG_DATA_HOME XDG_RUNTIME_DIR
# The real zsh config lives in XDG_CONFIG_HOME! ;)