Personal dotfiles configuration for macOS development environment.
Complete setup with one command:
just setupOr run individual steps:
just init # Install Homebrew, system packages, oh-my-zsh
just git # Configure git settings
just mise # Install development tools via mise
just copy-files # Copy dotfiles to home directoryRun just or just --list to see all available commands:
just setup- Complete setup (runs all steps)just init- Initialize system dependenciesjust git- Configure git settingsjust mise- Install mise toolsjust copy-files- Copy dotfiles (with automatic backup and cleanup)just copy-files --force- Copy dotfiles (no confirmation)just copy-files --dry-run- Preview what would be copiedjust copy-files --no-backup- Copy without automatic backupjust copy-files --force --no-backup- Force copy without backupjust update- Update everything (Homebrew, mise, git repo)just brew-update- Update Homebrew and packagesjust mise-update- Update mise and toolsjust versions- Show current tool versionsjust validate- Validate environment setupjust info- Show system informationjust backup- Backup current dotfilesjust clean- Clean up Homebrew caches
See mise.toml for current tool versions. Key tools:
- Python 3.13.9
- Go 1.25.4
- Erlang 28.1.1
- Elixir 1.19.2-otp-28
- Node 25.1.0
- Neovim 0.11.5
- Helm 3.19.0
- Terraform 1.13.5
- kubectl 1.34.1
- PostgreSQL 18.0
Recommended apps (install manually):
- Load profile from
iterm2/devato.json - Preferences -> Appearance -> General -> Theme -> Minimal
- Preferences -> Appearance -> Dimming -> Disable Dim Background Windows
- BG Color: 2B2D36
From within nvim:
:LspInstall bash
:LspInstall elixir
:LspInstall efm
brew install wrk
wrk -t4 -c100 -d30S --timeout 2000 "http://127.0.0.1:4000"Using nvim-treesitter for syntax highlighting.
This project now uses just instead of Make for task automation. The old Makefile and numbered bash scripts (0.init.sh, 1.git.sh, etc.) have been migrated to the justfile and moved to the scripts/ directory.
Benefits:
- Better help text and documentation
- More powerful recipe dependencies
- Cleaner syntax and error handling
- Additional utility commands (update, validate, backup, etc.)
- Configuration uses mise for version management (migrated from asdf)
- Brewfile defines system packages
- Scripts are idempotent where possible
- Automatic backup:
just copy-filesautomatically backs up existing files before overwriting, then cleans up the backup after successful copy - Manual backup: Use
just backupto create a timestamped backup without copying (backups are stored inbackups/directory) - Skip auto-backup: Use
--no-backupflag to skip automatic backup/cleanup
Legacy workaround for Erlang compatibility (preserved for older systems):
brew install wxwidgets
brew unlink wxwidgets
brew tap laggardkernel/tap
wget https://raw.githubusercontent.com/Homebrew/homebrew-core/7d7daebdadd1b7badf56bd87bce75f38e51c5795/Formula/wxwidgets.rb
brew install ./wxwidgets.rb
brew switch wxwidgets 3.1.5
brew pin wxwidgets