This does 80% of the work of setting up a Mac the way I like it:
xcode-select --install
git clone git://github.com/notahat/dotfiles ~/.dotfiles
cd ~/.dotfiles
export DOTFILES_ENV=home
./install
I re-run ./install
frequently (it's idempotent), which ensures I maintain it.
I remove anything I'm not using to keep it simple.
A whole bunch of things, but key components are:
- Neovim. I've got a pretty fancy setup. It's got lots of IDE features, but is a lot cleaner than other IDEs I've used. My config is extensively commented. Starts up in about 100ms.
- Zsh config. I like it fast (so none of this Oh My Zsh nonsense), but with a nice prompt and completion. Also starts up in about 100ms.
- Kitty. It's fast, configurable, and has great documentation.
- Homebrew installs anything where I always want the latest version, including apps from the Mac App Store.
- Mise-en-place manages things like languages, where I want particular versions installed.
./install
runs steps from the steps
directory. You can run individual
steps, or the whole set. See ./install -h
for usage.
All my config files live under config
. These get soft-linked into place by
the steps.
The environments
directory contains separate Brewfile
s and mise.toml
files for my home and work machines.
These are things that bug me about my current setup that I'd love to improve.
- Neovim
- Neo-tree doesn't automatically pick up changes after git operations in the terminal, and I have to manually refresh it with R.
- I kinda wish Neo-tree didn't bind /, so I could use it to move around.
- mini.* default key bindings don't show up in which-key.
- I still don't love the way notifications work.