A simple macOS specific dotfiles management system for making my developer experience consistent across the many Macs I use. Design tenets (in tension) are:
- Evolving -- breaking changes can happen
- Grokable -- I understand how everything works
- Contained -- changes are local to
$PROJECT_DIR
The system does three things:
- Uses Homebrew for managing system-wide dependencies using Brew Bundles
- Uses mise-en-place for managing development environments and project level dependencies
- Uses GNU Stow for managing dotfiles
To install the dotfiles:
xcode-select --install # to install developer tools
sudo xcodebuild -license
git clone https://github.com/kulesh/dotfiles.git ~/.dotfiles
cd ~/.dotfiles
/bin/zsh install.sh
This will install all the dependencies spelled out in the Brewfile and create symlinks to relevant dotfiles.
There are some QoL functions available for creating projects:
~/ $ mkproject example
~/dev/example/ $ ls -al
.rw-rw-r-- 0 steve 29 June 09:41 .mise.toml
~/dev/example/ $ mise use python
~/dev/example/ $ which python
/Users/steve/.local/share/mise/installs/python/3.13.2/bin/python
To work on an already created project:
~/ $ workon example
~/dev/exmaple/ $ ls -al
.rw-rw-r-- 26 steve 29 June 09:41 .mise.toml
workon
has tab completion.
This is an ever evolving list of tools (see Brewfile for more):
- Neovim with CodeCompanion - editor and AI
- Ghostty - Terminal