Use the following command to handle repository download and call the installer script (install.sh). It is tailored to swiftly set up my essential tools and applications on macOS.
sh -c "$(curl -fsSL https://raw.githubusercontent.com/cpwillis/dots/main/scripts/repo_download.sh)"
Quick Update
./scripts/update_configs.sh --commit
Post-Installation (Manual)
- Preferences in
~/Documents/Misc
;- iTerm2; Preferences > General > Settings > Import All Settings and Data...
- iStat Menus; File > Import Settings...
- Alfred; Advanced > Set preferences folder...
- Install; KiCad EDA, CleanMyMac X, PrusaSlicer
- Licenses; Alfred, Shottr, BetterDisplay, Bruno, CleanMyMac X
- PII Dotfiles;
.aws
,.gnupg
Homebrew and Brewfile
Homebrew is an unofficial package manager for macOS, simplifying the installation, updating, and management of user applications. Utilizing Git and Ruby, it installs packages within its prefix and symlinks them to the appropriate locations on disk, providing flexibility for customization and easy rollback of changes. Accessed via the terminal with the brew
command, Homebrew also offers an unofficial GUI called Cakebrew. The Brewfile defines a list of packages to install on your system, featuring keywords like brew
, cask
, tap
, and mas
, each serving specific purposes as detailed in the documentation's terminology section. Lines starting with brew install pre-compiled binary packages, casks install GUI applications, taps add extra repositories, and mas enables installation of apps from the Apple App Store directly within your Brewfile.
Dotfiles
Dotfiles, customizable configuration files typically stored in the user's home directory or ~/.config
, are named with a dot prefix (e.g., .gitconfig
, .zshrc
, .vimrc
). Managed via Git, they enable effortless backups, rollbacks, and synchronization across environments, ensuring a consistent setup on multiple machines and expediting the process of setting up a new system.
Prioritizing security when managing dotfiles is paramount due to the potential inclusion of sensitive information like SSH keys or passwords. Solutions encompass utilizing .gitignore
to prevent committing private files and ensuring setups aren't reliant on them. Encryption options such as pass
or plain GPG bolster security. Additionally, tools like Git-crypt provide GPG-based encryption tailored for Git repositories, furnishing plaintext fallback versions to prevent errors if GPG keys are absent.
Brewfile Management Commands
- Install from Brewfile at current path:
$ brew bundle
- Install from specific Brewfile:
$ brew bundle --file=[path/to/file]
- Create Brewfile from installed packages:
$ brew bundle dump
- Uninstall formulae not in Brewfile:
$ brew bundle cleanup --force
- Check for install or upgrade in Brewfile:
$ brew bundle check
- Output all Brewfile entries:
$ brew bundle list --all
Test Script in VM
It's advisable to test your script on a fresh Mac VM to ensure proper functionality. Installing on a clean Mac install allows you to identify potential issues that may not surface when repeatedly running the script on your own computer.
- Intel: Install Intel Mac OS VMs using Virtualbox.
- Apple Silicon (M1/M2): Utilize VirtualBuddy to run Mac OS VMs using Apple's Virtualization framework.
GitHub Codespaces
Settings > Codespaces > Dotfiles > Automatically install dotfiles
TODO
- Add
~/.config/atuin/config.toml
- https://docs.atuin.sh/configuration/config/
filter_mode = "directory"