Skip to content

gguerini/mac-setup

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

85 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Mac Setup

Full Stack Development Setup for macOS

Last Commit


Automated macOS setup script for full stack development. Installs and configures tools, applications, shell environment, and system preferences.


Table of Contents


Installation

Clone the repository and run the install script from the repo root:

$ git clone https://github.com/gguerini/mac-setup.git
$ cd mac-setup
$ zsh script/install.sh

The installer is interactive โ€” it will prompt you before each step so you can skip anything you don't need. Useful when setting up a work laptop vs. a personal machine.


What Gets Installed

Base packages (always installed)

  • mas โ€” Mac App Store CLI
  • gh โ€” GitHub CLI

App groups (opt-in per group)

Apps are organized into groups under brewfiles/. The installer prompts for each group:

Group Apps
development Cursor, VS Code, GitHub Desktop, iTerm2, Insomnia, Figma
databases TablePlus, Postico
productivity Alfred, Rectangle, Caffeine, xbar, AppCleaner, 1Password, MeetingBar, Hidden Bar, Things, Bumpr
communication Slack, ChatGPT, WhatsApp, Claude
browsers Firefox, Google Chrome, Brave
media VLC, LiceCap, ImageOptim, TrainerRoad
utilities Wipr 2, Vinegar, GIPHY, Xcode

To add a new group, create a brewfiles/Brewfile.<group> file โ€” the installer picks it up automatically.


System Preferences

macOS system preferences are configured via script/defaults.sh. It covers:

  • Finder โ€” status/path bars, list view, show hidden Library, spring loading
  • Dock โ€” size 35, auto-hide, no animations, minimize to app icon
  • Trackpad โ€” tap-to-click, two-finger right-click, three-finger swipe
  • Keyboard โ€” fast key repeat, disable press-and-hold, disable smart punctuation
  • Appearance โ€” Dark Mode, graphite accent color
  • Safari โ€” full URL display, developer tools, favorites bar

Run it standalone at any time:

$ zsh script/defaults.sh

If you see "Could not write domain" errors, grant Full Disk Access to your terminal app in System Settings > Privacy & Security.


Shell

Uses Oh My Zsh with a custom theme and aliases.

  • Theme โ€” tranquility (shows Git branch, commit age, dirty state)
  • Plugins โ€” git, rails
  • Aliases โ€” defined in oh-my-zsh/aliases.zsh

VS Code settings are managed via VS Code Settings Sync backed by GitHub โ€” not stored in this repo.


Git

The installer creates ~/.gitconfig from the template in this repo, prompting for your name, email, and preferred editor.

Includes a set of aliases for common workflows:

Alias Command
s status
aa add --all
cm add --all && commit -m
co checkout
cob checkout -b
up fetch && pull --rebase
reb fetch && rebase -i origin/main
lg fancy log with graph
wip commit all as WIP
undo reset last commit (mixed)
wipe hard reset
bdone checkout main, update, delete merged branches

SSH via 1Password

1Password can act as your SSH agent โ€” no key files on disk, protected by biometric unlock. When you enable it in Settings > Developer > Use the SSH agent, 1Password automatically updates ~/.ssh/config for you.


Version Manager

The installer offers a choice between asdf and mise for managing Ruby versions. Both support .tool-versions files.

  • asdf โ€” battle-tested, widely used
  • mise โ€” faster, actively maintained, drop-in replacement for asdf

About

๐Ÿ› ๏ธ Front end web development setup for macOS.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Shell 99.9%
  • Ruby 0.1%