Skip to content

dotgibson/dotfiles-MacBook

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

482 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

dotgibsonCILast CommitContributorsForksStargazersIssuesMIT License


Logo

🍎 dotfiles-MacBook

The macOS OS-native layer β€” Homebrew, AeroSpace tiling, and desktop tooling over the shared Core.
Explore the docs Β»

View Demo Β· Report Bug Β· Request Feature

Table of Contents
  1. About The Project
  2. Getting Started
  3. What's In This Layer
  4. Contributing
  5. License
  6. Contact

About The Project

dotfiles-MacBook is the OS-native layer for macOS (Apple Silicon / Intel) β€” one node in a cross-platform dotfiles system. The shared Core (zsh, tmux, Neovim, git, starship, mise) is authored once in dotfiles-core and vendored under core/ via git subtree, so a clone is self-contained. This repo adds only what is specific to macOS: the Brewfile (brew bundle), Ghostty, the 1Password SSH agent, the native pbcopy clipboard β€” plus a committed tiling-desktop layer: AeroSpace, SketchyBar, and Karabiner, themed to match Core.

macOS is its own lineage β€” built directly on Homebrew, not stamped from the Fedora template. The full docs live on the documentation site.

The system is three layers, each building on the one below:

Layer Lives in Owns
Core dotfiles-core β†’ vendored into every OS repo's core/ zsh, tmux, nvim, git, starship β€” identical everywhere
OS-native dotfiles-{MacBook,Windows,Fedora,Arch,openSUSE,Alpine,Gentoo} (this repo among them) package manager, clipboard, paths
Role dotfiles-Kali, dotfiles-Defense offensive / defensive tooling

Languages

  • Ruby

The Brewfile is a Ruby DSL (brew bundle); everything else is shell + config over Core.

Tools

  • Homebrew
  • Ghostty
  • AeroSpace
  • SketchyBar
  • Karabiner

(back to top)

Getting Started

Prerequisites

A Mac and the Xcode Command Line Tools (xcode-select --install) β€” that brings Git. bootstrap.sh provisions the rest via Homebrew. Already have a Mac configured a different way? See the migration guide to move onto this layout safely.

Installation

git clone https://github.com/dotgibson/dotfiles-MacBook ~/dotfiles-MacBook
cd ~/dotfiles-MacBook
./bootstrap.sh --links-only --dry-run   # preview the symlink plan (changes nothing)
./bootstrap.sh                          # Homebrew + brew bundle + symlinks
exec zsh
./bootstrap.sh --macos-defaults         # optional: apply system prefs

core/ is a vendored subtree and is already present in a clone β€” there is no submodule step. Flags: --dry-run/-n, --links-only, --no-brew, --set-shell (make the Homebrew zsh your login shell), --macos-defaults.

(back to top)

What's In This Layer

Only what changes with the OS. The heavy lifting β€” the shell modules, editor, and prompt β€” comes from vendored Core; this repo owns the macOS specifics:

  • Brewfile β€” Homebrew packages (CLI + casks + fonts), the source of truth
  • os/macos.zsh, os/macos.gitconfig, os/macos.conf β€” the macOS overlays
  • macos/defaults.sh β€” the defaults write system-preferences script (opt-in)
  • aerospace/, sketchybar/, karabiner/, ghostty/ β€” the desktop tooling
  • core/ β€” vendored from dotfiles-core (read-only here; edit upstream)

The things worth knowing β€” Homebrew on /opt/homebrew vs /usr/local, the native pbcopy/pbpaste clipboard, the 1Password SSH agent, and the macOS keychain β€” are written up on the hub, alongside the migration guide for moving an existing Mac onto this layout:

β†’ dotfiles-MacBook on the documentation hub

(back to top)

Contributing

This is an OS-native layer, so the contribution rule is a boundary rule:

  1. Never hand-edit core/. It is a vendored copy of dotfiles-core and is overwritten on the next sync. Fix shared config upstream in dotfiles-core, run make audit there, then make sync fans it out here.
  2. Keep changes genuinely macOS. If it would be identical on every machine, it belongs in Core; if it changes with the operator, it belongs in a role repo.
  3. Green the gate. CI runs shellcheck + shfmt + bash -n / zsh -n + make test-repo (as individual targets); make lint bundles the same checks locally, and pre-commit install mirrors them at commit time.

Bugs and ideas: open an issue.

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

Garrett Allen - @gerrrrt - [email protected] - LinkedIn

Project Link: dotgibson

(back to top)

About

🍎 The macOS layer β€” Homebrew, AeroSpace tiling, sketchybar & karabiner, over a shared zsh/nvim/tmux core. Keyboard-driven, drift-free.

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors