Like any other dotfiles project, I'm looking to create myself a templated solution that will help me
apply it on new environments, mostly Unix ones.
I'm using a dotfiles manager alongside a custom installer binary to achieve this,
managing both home and office/work environments.
The dotfiles are installed using a dedicated Go binary that handles system setup and configuration.
Use our get script to download the installer binary:
curl -fsSL https://raw.githubusercontent.com/MrPointer/dotfiles/main/get.sh | bashOne-command download and install dotfiles:
curl -fsSL https://raw.githubusercontent.com/MrPointer/dotfiles/main/get.sh | bash -s -- --runDownload and install dotfiles with custom options:
curl -fsSL https://raw.githubusercontent.com/MrPointer/dotfiles/main/get.sh | bash -s -- --run -- --work-env --install-prerequisitesDownload to custom directory:
curl -fsSL https://raw.githubusercontent.com/MrPointer/dotfiles/main/get.sh | bash -s -- --dir /usr/local/binDownload pre-built binaries from GitHub Releases:
macOS (Apple Silicon):
curl -L -o dotfiles-installer.tar.gz https://github.com/MrPointer/dotfiles/releases/latest/download/dotfiles-installer-*-darwin-arm64.tar.gz
tar -xzf dotfiles-installer.tar.gz
chmod +x dotfiles-installerLinux (x86_64):
curl -L -o dotfiles-installer.tar.gz https://github.com/MrPointer/dotfiles/releases/latest/download/dotfiles-installer-*-linux-x86_64.tar.gz
tar -xzf dotfiles-installer.tar.gz
chmod +x dotfiles-installerLinux (ARM64):
curl -L -o dotfiles-installer.tar.gz https://github.com/MrPointer/dotfiles/releases/latest/download/dotfiles-installer-*-linux-arm64.tar.gz
tar -xzf dotfiles-installer.tar.gz
chmod +x dotfiles-installerClone the repository and build the installer:
git clone https://github.com/MrPointer/dotfiles.git
cd dotfiles/installer
go build -o dotfiles-installer .
./dotfiles-installer installIf you have Go installed:
go install github.com/MrPointer/dotfiles/installer@latest
dotfiles-installer installThe installer provides several commands and options:
dotfiles-installer install- Install dotfiles on the current systemdotfiles-installer check-compatibility- Check system compatibilitydotfiles-installer --help- Show all available commands and options
The following options can be passed to the install command:
| Option | Description | Default |
|---|---|---|
--work-env |
Treat this installation as a work environment | false |
--work-name |
Work environment name | sedg |
--work-email |
Work email address | [email protected] |
--shell |
Shell to install and set as default | zsh |
--install-brew |
Install Homebrew if not present | true |
--install-shell-with-brew |
Install shell using Homebrew | true |
--multi-user-system |
Configure for multi-user system | false |
--git-clone-protocol |
Git protocol for operations | https |
--install-prerequisites |
Automatically install missing prerequisites | false |
These options work with any command:
| Option | Description |
|---|---|
-v, --verbose |
Enable verbose output (use -vv for extra verbose) |
--plain |
Show plain text instead of progress indicators |
--non-interactive |
Disable interactive prompts |
--extra-verbose |
Enable maximum verbosity |
Basic setup:
./dotfiles-installer installWork environment installation:
./dotfiles-installer install --work-env --work-email [email protected]Non-interactive dotfiles installation with prerequisites:
./dotfiles-installer install --non-interactive --install-prerequisites --git-clone-protocol=httpsCheck system compatibility first:
./dotfiles-installer check-compatibility
./dotfiles-installer installI'm using chezmoi as the dotfiles manager, which provides templating abilities, per-machine differences, and much more. The installer sets up chezmoi and populates it with the necessary configuration.
The Go installer handles the complete setup process:
- System Compatibility Check - Verifies the system can run the dotfiles
- Prerequisites Installation - Installs required tools and dependencies
- Homebrew Setup - Installs Homebrew on macOS (optional on Linux)
- Shell Installation - Installs and configures the specified shell
- GPG Setup - Configures GPG keys for secure operations
- Dotfiles Manager Setup - Installs and configures chezmoi
- Template Application - Applies the dotfiles with user-specific configuration
The installer provides real-time progress indicators and detailed logging to track the installation process.