+### path
+# /usr/{pkg,local,games} are unix/bsdisms
+typeset -U path
+path=({~/,/,/usr/}sbin {~/,/,/usr/}bin /usr/pkg/{s,}bin /usr/X11R{7,6}/bin
+ /usr/local/{s,}bin /usr/games $path)
+
+### posix
export EDITOR=vim
+export PAGER=less
+export GREP_OPTIONS=--color=auto
+export LANG="en_US.UTF-8"
+export LC_CTYPE="$LANG"
+
+### xdg
export XDG_CONFIG_HOME=~/etc
-export XDG_CONFIG_DIRS=~/.config:/etc/xdg
+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/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
-export DVTM_TERM=rxvt-unicode
-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'
-export GREP_OPTIONS=--color=auto
-
+### applications
export PYTHONSTARTUP=~/.pythonrc
+## perl
+(( ${+commands[perl]} )) && eval $(perl -I $XDG_DATA_HOME/perl5/lib/perl5 -Mlocal::lib=$XDG_DATA_HOME/perl5)
+## 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" ]] {
+ 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'
+}
-if [[ -f ~/.zshenv.local ]]; then
+### load site-specific
+if [[ -f ~/.zshenv.local ]] && [[ ! -v _ZSHENV_LOADED ]] {
+ export _ZSHENV_LOADED=
source ~/.zshenv.local
-fi
+}