An installer script for Homebrew, other system dependencies, and important configuration files
- A UNIX-ish operating system, one of:
- macOS
- tested on Sequoia 15.7.8
- Bazzite
- tested on
bazzite-nvidia-open44.20260907.0
- tested on
- Fedora CoreOS
- tested on
stable44.20260817.3.2
- tested on
- Debian
- tested on
trixiein Visual Studio Code's Development Containers
- tested on
- Others (untested)
- macOS
- Bash
- curl (for automatic bootstrapping)
- git (for manual installation)
- On Linux, all Homebrew system requirements
Bash and curl are pre-installed on macOS.
The installer script installs Homebrew, clones this repository to ~/.dotfiles, links important configuration files
("dotfiles") into their respective locations, installs additional system dependencies using Homebrew Bundle, and
performs automated system configuration changes.
Run the following command to download and execute the bootstrap script.
bash <(curl -fsSL https://github.com/jarrodldavis/dotfiles/raw/main/install.bash)You can manually clone this repository and run the install.bash script from that repository.
git clone https://github.com/jarrodldavis/dotfiles.git ~/.dotfilescd ~/.dotfiles./install.bashAlternatively, you can copy the contents of install.bash to a file on disk and run it using bash ./install.bash.
Important
The installer script always clones this repository to ~/.dotfiles, even if it was manually cloned to a different
location.
All installer options are specified as environment variables. The presence of an environment variable with a non-empty value enables the corresponding option; the option is disabled otherwise.
DOTFILES_REINSTALL=1 DOTFILES_SKIP_MAS=1 ./install.bashWarning
The installer script only checks for any non-empty value in an environment variable, so even typically "falsy"
values like 0 or NO will enable the option.
Force the removal and reinstallation of Homebrew and all Homebrew Formulae.
Homebrew Casks are not fully removed, but will be adopted or overwritten upon reinstallation. Visual Studio Code extensions will not be removed, but any missing extensions will be installed.
On macOS, skip installation of Mac App Store (mas) dependencies.
An internal option used by other scripts. Short-circuits the installer so that common helpers can be sourced by other scripts for consistent logging output and installation target selection.
Note
These maintenance actions are performed automatically before each commit using a git pre-commit hook.
Homebrew Bundle is used to record the CLI tools (Homebrew Formulae), GUI applications (Homebrew Casks, Flatpaks, and
Mac App Store apps), and Visual Studio Code extensions that should be installed. To record the installation or removal
of these system dependencies, update the appropriate system-specific *.Brewfile manifest using
~/.dotfiles/scripts/maintenance/update-homebrew-bundle.bash.
configs/gitignore can be updated to use the latest templates from github/gitignore using
~/.dotfiles/scripts/maintenance/update-global-gitignore.bash.
All shell scripts can be linted with ShellCheck using ~/.dotfiles/scripts/maintenance/shellcheck-all.bash.