_ _ ___ _ _
_| |___| |_| _|_| |___ ___
| . | . | _| _| | | -_|_ -|
|___|___|_| |_| |_|_|___|___|
Personal dotfiles configuration for macOS. Automates the setup of development environment, system preferences, and development tools.
Inspired by dotfiles.github.io
Before running the installation, complete these steps:
-
Sign in to Mac App Store
- Open App Store and sign in with your Apple ID
-
Update macOS
- Go to System Settings → Software Update
- Install the latest macOS version
-
Install Rosetta (Apple Silicon only)
softwareupdate --install-rosetta
-
Set up SSH keys
mkdir -p ~/.ssh && cd ~/.ssh
-
Option A: Copy SSH keys from another machine:
# Copy id_rsa and id_rsa.pub (or id_ed25519/id_ecdsa) chmod 600 ~/.ssh/id_rsa chmod 644 ~/.ssh/id_rsa.pub
-
Option B: Generate a new SSH key
- The installer will prompt you to create one if none are found
-
-
Create GitHub Personal Access Token
- Create a token with
reposcope - Save it securely (you'll need it for git operations)
- Create a token with
-
Install Command Line Tools
xcode-select --install
- Follow the prompts to install Xcode Command Line Tools
-
Clone the repository
git clone git@github.com:milon/dotfiles.git ~/.dotfiles -
Run the installer
cd ~/.dotfiles ./install.sh
The installer will guide you through the setup process with interactive prompts.
After installation, you'll have a dotfiles command available in your terminal.
dotfiles helpor simply:
dotfiles➜ dotfiles
_ _ ___ _ _
_| |___| |_| _|_| |___ ___
| . | . | _| _| | | -_|_ -|
|___|___|_| |_| |_|_|___|___|
➜ Usage: dotfiles <command>
Commands:
help Show this help message
update Update packages and pkg managers (brew, mac app store, composer)
clean Clean up caches (brew, npm, composer)
Setup:
symlinks Create symlinks for dotfiles
brew Install Homebrew and dependencies
git Configure git settings
Languages:
php Setup PHP and Composer
node Setup Node.js environment
python Setup Python environment
java Setup Java environment
ruby Setup Ruby environment
Development:
valet Setup Laravel Valet
clone Clone git repositories
pull Update all git repositories
Editors:
vim Setup Vim
neovim Setup Neovim
System:
mac Configure macOS settings
xcode Setup Xcode- Editors: Vim, Neovim (NvChad)
- Version Managers: nvm, pyenv, frum (Ruby), jenv (Java)
- Languages: Node.js, Python, PHP, Ruby, Java
- Databases: SQLite, DBngin (MySQL, PostgreSQL, Redis)
- Other: Git, Composer, Laravel Valet, Mailpit, Meilisearch
- Development: Visual Studio Code, Bruno (API client), OrbStack (Docker)
- Productivity: 1Password, Raycast, Obsidian, Bartender
- System: Aldente, MonitorControl, Latest
- Media: IINA, YouTube Music
- Terminal: Ghostty
- Shell configuration (Zsh with Antigen)
- Git configuration with aliases and colors
- macOS system preferences
- Symlinks for dotfiles
- Custom aliases: Edit
~/.custom_aliases(created automatically) - Dotfiles: Add files to
files/directory and updatesupport/sym_links.sh - Homebrew packages: Add to
support/Brewfile
- Git repositories: Edit
support/git_clone.shto add your repositories - Git pull list: Edit
support/pull.shto manage repository updates
- SSH key errors: Ensure your SSH keys are properly configured and added to GitHub
- Homebrew errors: Make sure you have admin privileges and internet connection
- Permission errors: Some scripts may require
sudofor system-level changes
# Re-run a specific setup step
dotfiles brew
# Check what will be installed
cat support/Brewfile
# View installation logs
# Check the output from install.sh for specific errors- The installer will prompt you for confirmation at various steps
- Some steps require manual intervention (e.g., signing into apps)
- The
manual_steps.shscript will remind you of remaining manual tasks
This is a personal dotfiles repository, but suggestions and improvements are welcome!
- Twitter: @to_milon
- Email: contact[@]milon[.]im
See LICENSE file for details.