merged from will's latest dotfiles