-d="$HOME/.dotfiles"
-for x in .*; do ln -vwis "$d/$x" "$HOME/$x"; done
-ln -vwis "$d/i3-config" "$HOME/.config/i3/config"
-ln -vwis "$d/i3status-config" "$HOME/.config/i3status/config"
+
+#fix permissions from git (should probably move this to git hook)
+chmod go= base/.zshenv base/.Xresources
+
+for x in `find "$PWD/base" -mindepth 1 -maxdepth 1`; do
+ ln -vwis "$x" "$HOME/`basename $x`"
+done
+for x in `find "$PWD/xdg" -mindepth 1 -maxdepth 1`; do
+ ln -vwis "$x" "${XDG_CONFIG_HOME:-$HOME/.config}/`basename $x`"
+done
+touch "$HOME/.hushlogin"
+
+#FreeBSD tries `_secure_path' on `.login_conf' before reaading the database,
+#so it needs to be compiled and unlinked for it to actually take effect.
+cd "$HOME"
+rm .login_conf.db
+cap_mkdb .login_conf
+unlink .login_conf
+cd -