-export EDITOR=vim
-export XDG_DATA_HOME="$HOME/share"
-export XDG_DATA_DIRS="$HOME/.local/share:/usr/local/share/:/usr/share/"
-export XDG_CACHE_HOME="$HOME/tmp"
+### 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)
-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'
+### 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:/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_CACHE_HOME=~/tmp
+export XDG_RUNTIME_DIR=~/tmp
+
+### applications
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" ]] {
+ 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 PUUSH_API_KEY=159C54A56C88394136BA1ACB6A9D8F80
+### load site-specific
+if [[ -f ~/.zshenv.local ]] && [[ ! -v _ZSHENV_LOADED ]] {
+ export _ZSHENV_LOADED=
+ source ~/.zshenv.local
+}