### path
-# typeset -U makes every array entry unique
# /usr/{pkg,local,games} are unix/bsdisms
typeset -U path
path=({~/,/,/usr/}sbin {~/,/,/usr/}bin /usr/pkg/{s,}bin /usr/X11R{7,6}/bin
export XDG_CONFIG_HOME=~/etc
export XDG_CONFIG_DIRS=~/.config:/usr/pkg/etc/xdg:/usr/local/etc/xdg:/etc/xdg
export XDG_DATA_HOME=~/share
-export XDG_DATA_DIRS=~/.local/share/:/usr/pkg/share/:/usr/local/share/:/usr/share/
+export XDG_DATA_DIRS=~/.local/share:/usr/pkg/share:/usr/local/share:/usr/share
export XDG_CACHE_HOME=~/tmp
+export XDG_RUNTIME_DIR=~/tmp
### applications
-export DVTM_TERM=rxvt-unicode
export PYTHONSTARTUP=~/.pythonrc
+## perl
+(( ${+commands[perl]} )) && eval $(perl -I $XDG_DATA_HOME/perl5/lib/perl5 -Mlocal::lib=$XDG_DATA_HOME/perl5)
+## gpg
+if (( ${+commands[gpg]} )) {
+ export GPG_TTY=$(tty)
+ if [[ ! -v SSH_AUTH_SOCK ]] {
+ # set up SSH auth socket and start GPG agent
+ export SSH_AUTH_SOCK=$(gpgconf --list-dirs agent-ssh-socket)
+ }
+ gpg-connect-agent updatestartuptty /bye >/dev/null
+}
### freebsd
-if [[ "$OSTYPE" = "freebsd" ]]; then
+if [[ "$OSTYPE" =~ "^freebsd" ]] {
export CLICOLOR=
export LS_COLORS='di=34:ln=35:so=32:pi=33:ex=31:bd=46;34:cd=43;34:su=41;30:sg=46;30:tw=42;30:ow=43;30'
-fi
+}
### load site-specific
-if [[ -f ~/.zshenv.local ]]; then
+if [[ -f ~/.zshenv.local ]] && [[ ! -v _ZSHENV_LOADED ]] {
+ export _ZSHENV_LOADED=
source ~/.zshenv.local
-fi
+}