/setup-my-mac

Documentation, etc. for setting up a new Mac the way I like it.

Primary LanguageShellMIT LicenseMIT

Setup My Mac

  • Current Silicon Used: Apple M1
  • Current OS X Version Used: Ventura 13.1

This repository holds my scripts, configuration files, notes, etc. for the rare occasion of setting up a new Mac for myself. You will find in here:

  • My customizations to various system preferences
  • A script to
    • Install a considerable amount of software I use
    • Remind of software I need to install manually
    • Setup my terminal theme
    • Setup various dotfiles and configuration files I use via chezmoi.

Initial Setup

I follow these steps immediately after I first boot up a new Mac and go through the initial setup it presents:

  • Apply any system software updates.
  • Apply any App Store updates for pre-installed software.
  • Remove any unwanted applications from the dock.

System Preferences

Here are the various customizations I make to the default system preferences.

General

Date & Time

  • Turn on 24-hour time.

Language & Region

  • Set First day of week to Sunday.
  • Set Date format to YYYY-MM-DD.

Sharing

  • Local hostname > Edit and provide a better hostname.

Appearance

  • Set Appearance to Dark.

Desktop & Screen Saver

  • Add the ~/Pictures/wallpaper directory to the Folders list and select it.
  • Check Change picture and set the drop-down toEvery 30 minutes. Repeat for each monitor attached.
  • Check Random Order. Repeat for each monitor attached.

Desktop & Dock

  • Adjust Size to feel comfortable based on the screen size.
  • Set Minimize windows using to Scale effect.
  • Turn off Automatically hide and show the Dock.
  • Turn off Show recent applications in Dock.

Control Center

  • Set Bluetooth to Show in Menu Bar.
  • Set Focus to Always Show in Menu Bar.
  • Turn on Battery > Show Percentage.
  • Set Menu Bar Only > Spotlight to Don't Show in Menu Bar.
  • Set Menu Bar Only > Siri to Don't Show in Menu Bar.
  • Turn on Menu Bar Only > Clock > Clock Options > Use a 24-hour clock.

Siri & Spotlight

  • Turn off Ask Siri.
  • Uncheck all the items under Spotlight.

Wi-Fi

  • Click the Details button next to the desired network(s) and go to the DNS entry.
    • Clear out any existing entries in DNS Servers.
    • Add these DNS servers instead in this order:
      • 1.1.1.1
      • 8.8.8.8
      • 8.8.4.4

Installation Script

./setup-my-mac.sh

This bash script performs the following tasks in order:

  • Install Homebrew.
  • Use Homebrew to automatically install various software you would otherwise have to manually install (see Brewfile for list).
  • Setup fish shell to be the default shell.
  • Install the oh-my-fish package manager.
  • Use oh-my-fish to install any fish shell packages and the gitstatus theme.
  • Create the directories ~/github.com, ~/Pictures/wallpapers.
  • Remind me of any other software I need to manually download and install.
  • Use chezmoi to install dotfiles and configuration files.

The script endeavors to only perform a step if necessary. e.g., It attempts to detect already installed software to prevent trying to inst all it again.

What I Use

Utilities

Name Description Installation
Homebrew OS X package manager used to install software See latest instructions on homepage. setup-my-mac.sh has those instructions as of last check-in.
wget Utility for retrieving files via HTTPS, etc. Homebrew
autojump Utility for quickly changing to previously visited directories Homebrew
youtube-dl Utility for downloading videos from YouTube and other streaming sites Homebrew
ssh-copy-id Utility for installing SSH keys on a server Homebrew
Jumpcut Clipboard manager Homebrew Cask
Caffeine Prevents your Mac from automatically going to sleep Homebrew Cask
VeraCrypt Disk encryption software Homebrew Cask
LastPass Password manager Homebrew Cask
FileZilla FTP client Manual
f.lux Adjust the screen colors based on time of day Homebrew Cask
MacVIM Text editor Homebrew Cask
xbar Put the output of a script into your menu bar Homebrew Cask
iCalBuddy Command-line utility that can be used to get lists of events and tasks/to-do's from the OS X calendar database Homebrew
rbenv Manage installed versions of Ruby on your machine Homebrew
Hammerspoon LUA based automation tool Homebrew Cask
chezmoi Manage your dotfiles across multiple diverse machines, securely. Homebrew

Alternative Terminals, Shells, Fonts

Name Description Installation
iTerm2 My preferred replacement for the OS X terminal program Homebrew Cask
fish shell My preferred shell these days Homebrew
oh-my-fish Package manager for fish shell used to install themes and fish shell related utilities See latest instructions on homepage. setup-my-mac.sh has those instructions as of last check-in.
JetBrains Mono Font Programmer friendly font Homebrew Cask

Programming IDEs

Name Description Installation
PHPStorm JetBrains IDE for PHP development Manual
GoLand JetBrains IDE for Go development Manual
WebStorm JetBrains IDE for JavaScript development Manual
DataGrip JetBrains IDE for SQL / database development Manual
XCode Apple development App Store

Web Browsers

Name Description Installation
Firefox Developer Edition Version of Firefox geared towards developers Homebrew Cask

Chat & Social Media

Name Description Installation
Slack App Store
Discord Homebrew Cask
Tweeten Twitter client Homebrew Cask

Entertainment

Name Description Installation
Battle.net Blizzard gaming client Manual
Steam Platform for a variety of games Homebrew Cask
GOG Galaxy Platform for older games Homebrew Cask
VLC Media player Homebrew Cask

Finance

Name Description Installation
Quicken Deluxe Keep track of financial accounts Manual
H&R Block Tax Software Tax preparation & filing Manual