My dotfiles. Aka, my preferred configuration for things on my Macs.
That doesn't mean I use identical configs everywhere (differentiation can be nice!) but most all of these things are kept the same for smooth operation.
Having Homebrew will make your life a lot easier going forward.
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
zshell is now default with macOS and this step is probably skippable for future me, but just in case it's not around for some reason:
brew install zsh
Installs:
- bat, a cooler version of
cat
- git-delta, nicer git diffs, goes well with bat
- powerlevel10k, my preferred zsh theme
- stow, a symlinker tool
- zoxide, it's
cd
with loose matching
brew install bat git-delta powerlevel10k stow zoxide
git clone [email protected]:querkmachine/dotfiles.git ~/dotfiles
cd ~/dotfiles
stow .
Why trawl through menus of stuff when you can do stuff with terminal commands?
macOS has an extra layer of security when touching parts of the OS that even sudo
cannot overcome.
To overcome them, go to System Settings → Privacy → Full Disk Access and grant whatever terminal application is being used that permission. The terminal will need to be restarted.
cd ~/dotfiles
sh macos-config.sh
There might be a few warnings and maybe a few errors (it's not uncommon for these commands to change between macOS versions) but the script should keep running regardless.
There are other Homebrew utilities I tend to have installed but which aren't required for getting started on a new computer. These are here just so I have an easy reference for them.
- yt-dlp, for downloading video
- ffmpeg, for video and audio conversion
- imagemagick, for image conversion
- gitmoji, for annotating git commits with ✨fun✨
- nvm, for managing Node versions
- pyenv, for managing Python versions
- chruby, for managing Ruby versions
brew install yt-dlp ffmpeg imagemagick gitmoji nvm pyenv chruby
Casks are more akin to full desktop applications rather than command line programs, and need to be installed slightly differently. This command installs:
- 1Password
- Raycast
- Karabiner-Elements
- Arc
- Firefox
- Chrome
- Edge
- Discord
- Telegram (macOS version)
- Nova
- Sublime Text
brew install --cask 1password raycast karabiner-elements arc firefox google-chrome microsoft-edge discord telegram nova sublime-text
To update the dotfiles, simply pull the latest changes to the repo and run the stow command again.
cd ~/dotfiles
git pull origin main
stow .
Updates for Brew, Ruby, npm and macOS have all been bundled into a single command within the .zshrc
file.
update
This will ask for sudo permissions as they are required for updating some Rubygems and macOS itself.