> docs/ features

Dotfiles & Shell

OpenBoot configures your shell environment and can link your dotfiles β€” so your personal setup follows you to any Mac.

Shell Configuration

OpenBoot sets up Zsh with Oh-My-Zsh automatically:

  • Plugins: git, zsh-autosuggestions, zsh-syntax-highlighting
  • Theme: A clean, informative prompt
  • Aliases: Common shortcuts for developer workflows

External plugins referenced in .zshrc (such as zsh-autosuggestions and zsh-syntax-highlighting) are cloned automatically during install and snapshot restore β€” no manual git clone needed.

If you already have Oh-My-Zsh installed, OpenBoot merges its plugin recommendations without overwriting your existing config.

After installation, restart your terminal or run source ~/.zshrc to pick up the new configuration.

Skipping Shell Setup

If you manage your shell config yourself:

openboot install --shell skip

Dotfiles

If you keep your config files in a Git repo (.zshrc, .gitconfig, .vimrc, etc.), OpenBoot can clone and link them automatically.

How It Works

  1. Set a dotfiles repo URL in your config (via the dashboard or config JSON)
  2. During install, OpenBoot clones the repo to ~/.dotfiles
  3. Files are symlinked into your home directory β€” OpenBoot detects the linking method automatically

Linking Methods

OpenBoot tries three methods in order, using the first one that applies:

PriorityConditionWhat happens
1Makefile with an install: targetRuns make install in ~/.dotfiles
2Top-level subdirectories (stow packages)Links each package with GNU Stow
3Flat file structureSymlinks files directly into $HOME

This lets your dotfiles repo own its own deployment logic β€” directory pre-creation, custom stow flags, or any other setup β€” without requiring OpenBoot to know repo-specific details.

Dotfiles Modes

Control how OpenBoot handles dotfiles with the --dotfiles flag:

ModeWhat it does
cloneClone the repo to ~/.dotfiles
linkClone and link using the detected method above
skipDon’t touch dotfiles
openboot install --dotfiles link
openboot install --dotfiles skip

Setting Up Your Dotfiles Repo

Option A β€” Makefile (recommended for custom setups)

Add a Makefile with an install: target. OpenBoot runs make install, so your repo controls everything:

install:
	stow -v --target="$(HOME)" git zsh vim

Option B β€” Stow packages

Structure your repo so each top-level directory is a stow package. OpenBoot calls stow on each one automatically:

~/.dotfiles/
β”œβ”€β”€ git/
β”‚   └── .gitconfig
β”œβ”€β”€ zsh/
β”‚   └── .zshrc
└── vim/
    └── .vimrc

Each top-level directory is a β€œpackage.” When stowed, the contents are symlinked one level up β€” so git/.gitconfig becomes ~/.gitconfig.

OpenBoot provides a starter dotfiles template you can fork and customize.

macOS Preferences

OpenBoot applies a curated set of developer-friendly macOS settings. These are all reversible system preferences β€” nothing destructive.

What Gets Configured

System β€” Show all file extensions, always-visible scrollbars, disable auto-correct/auto-capitalization, key repeat rate and delay

Dock β€” Auto-hide, icon size, show recent apps, minimize animation

Finder β€” View style, new window location, search scope, path/status bar, hidden files, file extensions, POSIX title, .DS_Store suppression, desktop icon visibility, and more

Trackpad β€” Tap to click (wired + Bluetooth), three-finger drag

Keyboard β€” Use F1–F12 as standard function keys

Screenshots β€” Save location, file format (PNG/JPEG/PDF/TIFF), disable window shadows

Mission Control β€” Auto-rearrange Spaces, group windows by app, hot corners (all four)

Menu Bar β€” Per-icon visibility (Sound, Bluetooth, Wi-Fi, Battery, AirDrop, Display, Focus, Now Playing, Screen Mirroring); Sound always-show mode

Security β€” Require password after sleep, no grace period delay

Desktop & Stage Manager β€” Click wallpaper to show desktop (Stage Manager interaction mode)

Skipping macOS Preferences

If you prefer your current settings:

openboot install --macos skip

See Config Options for the complete list of macOS preferences you can configure.