Welcome to my personal collection of dotfiles and setup scripts for macOS, available at github.com/axelquack/dotfiles-macos. This repository contains configurations for Zsh, Starship, various development tools, system preferences, and setup automation, aiming for a productive command-line environment.
This setup utilizes:
- Shell: Zsh (configured via
.zshrcand.zshenv) - Prompt: Starship (
starship.toml) - Tile Manager: Aerospace (
aerospace.toml) - History: Atuin (
atuin init zshin.zshrc) - Package Manager: Homebrew (managed via
brewfile.private) - Updating: Topgrade (
topgrade.toml) - Language Version Managers:
- Python:
pyenv+uv - Ruby:
rbenv+ruby-build - Node.js:
fnm
- Python:
- macOS Configuration: Script using
defaults write(macOs.sh) - Other Tools:
eza,btop,wget,rmtrash,colima/docker, etc. - (Note: Neovim/Vim configuration is managed in a separate repository).
- macOS (Scripts are tailored for it)
- Optional but Recommended: Git (for cloning this repository)
-
Clone the Repository: It's best to clone this repository to your local machine first, for example, into
~/dotfiles:git clone https://github.com/axelquack/dotfiles-macos.git ~/dotfiles cd ~/dotfiles
-
Review Configuration: Look through
brewfile.privateandmacOs.shto ensure you agree with the software being installed and the system settings being applied. Comment out or remove anything you don't want. -
Run Bootstrap Script: This script handles prerequisites (Xcode Command Line Tools check, Homebrew install) and then installs applications listed in
brewfile.private../bootstrap.sh
- Note: The script expects
brewfile.privateto be in the same directory it's run from (~/dotfiles/brewfile.privatebased on the clone path above). Adjust theBREWFILE_PATHinsidebootstrap.shif needed. - You might be prompted for your password for Homebrew or MAS installs. Ensure you're logged into the App Store if installing MAS apps.
- Note: The script expects
-
Apply macOS Settings: The
macOs.shscript applies various system and application preferences usingdefaults write. Run it separately:./macOs.sh
- This script requires
sudoprivileges for some commands. - Some changes may require a logout/restart to take full effect.
- This script requires
-
Link Dotfiles: Manually link or copy the configuration files from this repository to their correct locations in your home directory (or use a dotfile manager like
stow)..zshrc->~/.zshrc.zshenv->~/.zshenv.wgetrc->~/.wgetrc.gitignore-> Copy contents to~/.gitignore_globalor project.gitignore..gemrc->~/.gemrcaerospace.toml->~/.config/aerospace/aerospace.tomlstarship.toml->~/.config/starship.tomltopgrade.toml->~/.config/topgrade.toml
-
Restart Terminal: Open a new terminal window or tab for all Zsh settings, PATH changes, and tool initializations to take effect.
.zshrc: Main configuration file for interactive Zsh sessions. Sets up PATH, initializes version managers (pyenv,rbenv,fnm), Starship prompt, Aerospace, Atuin history, aliases, and functions..zshenv: Sourced for all Zsh sessions. Used for setting essential environment variables like$EDITORand$PAGER.starship.toml: Configuration for the Starship cross-shell prompt. Place in~/.config/starship.toml.aerospace.tomlConfiguration for the Aerospace tile mananger. Place in~/.config/aerospace.toml.topgrade.toml: Configuration for the Topgrade universal updater tool. Place in~/.config/topgrade.toml..wgetrc: Default configuration settings for thewgetdownload utility..gitignore: A comprehensive global Git ignore file. Can be used as~/.gitignore_globalor copied/adapted for individual projects..gemrc: Configuration file for RubyGems (e.g., disabling documentation install).
bootstrap.sh: Shell script to automate initial setup: checks/installs Xcode Command Line Tools, Homebrew, and then runsbrew bundle.brewfile.private: Defines all applications and tools to be installed via Homebrew (usingbrew,cask, andmascommands). Used bybootstrap.sh.
macOs.sh: Applies various macOS system preferences and application settings usingdefaults writeand other commands. Run manually afterbootstrap.sh.
- Run
topgraderegularly. It uses thetopgrade.tomlconfiguration to update Homebrew packages, MAS apps, macOS system updates, and potentially other configured items. - Language versions installed via
pyenv,rbenv,fnmare generally updated manually as needed (e.g.,pyenv install 3.x.y,rbenv install 3.x.x).
- Docker/Colima: This setup uses Colima for a CLI-based Docker environment. Remember to run
colima startbefore using Docker commands andcolima stopwhen finished. - Editor Configuration: Vim/Neovim configuration is managed in a separate repository.
The code and configuration files in this repository are licensed under the MIT License. See the LICENSE file for details.
If you have any questions or feedback (especially regarding improvements or potential issues), please feel free to open an issue on the GitHub repository or contact the repository owner.