defaults type, needs tests

it still needs tests, but otherwise works fine for my config: https://github.com/mattly/dotfiles/blob/0e3e244b71cccd4a821d9f3372b4343f80191a78/install/osx.sh