My MacOS Configuration
This article outlines my configuration for my Mac. All of my dotfiles, as well as a copy of this guide, are available at https://gitlab.com/lschumm/dotfiles.
OS Installation
- Erase the main disk, erase and rename as
Macintosh HD
and format it as plainAPFS
. - Then, choose the
Reinstall MacOS
option on the new disk. - On installation make sure to choose:
- "Don't transfer any information now" on the Migration Assistant page
- Sign in with Apple ID
- Set username to
lschumm
instead ofliamschumm
; but do not allow Apple ID to reset this password - Under "Express Set-Up", choose "Customize Settings" - Enable Location Services - Disable analytics - Enable Siri - Do not "store files from Documents and Desktop in iCloud Drive" - Enable FileVault; but do not allow iCloud password to unlock the disk - Choose Light theme
OS Configuration
Install XCode
Go into the App Store and download XCode.
To install the XCode command line tools, run:
xcode-select --install sudo xcodebuild -license
Install Homebrew
Use the brew
default installer.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Change hostname
Under System Preferences > Sharing
, change the hostname to the preferred name of your machine (I use the last names of famous computer scientists):

Install Python3
MacOS (as of Mojave) installs Python 2.7.10
, which is a reasonable version of Python 2 to have. To install Python 3, I recommend brew
:
brew install python3
Install python2-pip
When brew
installed python3
, it also installed pip3
. However, MacOS' default version of Python does not include pip. It does include easy_install
, which can be used to install pip
:
sudo easy_install pip
Install the latest version of Emacs
MacOS (as of Mojave) installs Emacs 22.1.1
, which is ancient. Install emacs26
with brew
:
brew install emacs
App Installation
I like installing apps through brew cask
because command line stuff is great, and it allows all of my applications to be centrally managed by a utility. Nothing is in the Mac App Store.
brew cask install telegram brew cask install gimp brew cask install spotify
Dock Configuration
I personally don't really like the Dock, because it takes up space on my small 11 inch screen. I use Spotlight to open applications, and Command + Tab
to switch applications/see what's open. This command will set the Dock autohide delay to 1000 seconds, so you have to hover over the bottom of the screen for 1000 seconds to display the dock.
If you really need your dock, Command + Option + D
will manually open it; press it again to hide it.
defaults write com.apple.dock autohide-delay -float 1000; killall Dock
Disabling Gatekeeper
Gatekeeper is that annoying "can't be opened because it is from an unidentified developer" thing. To disaple it, run:
sudo spctl --master-disable
I'm a responsible user and don't download random binaries and execute them; I don't like MacOS second guessing me.
Setting up File Hierarchy
I actually like to remap my home directory to Desktop, so it's visible on my screen. I remap my HOME
environment variable to ~/Desktop
.
mkdir Desktop/research mkdir Desktop/blog
Install wakatime
Install wakatime
globally using pip
:
sudo pip install wakatime
Then, install the wakatime-mode
package in emacs
. First run:
M-x package-refresh-contents [RET]
to fetch the latest versions of packages. Then, install the package:
M-x package-install [RET] wakatime-mode [RET]
Make Finder show all file extensions
Not showing file extensions on some files is really needlessly confusing. Disable it in Finder > Preferences
. I also like disabling warnings when changing extensions.

Set key repeat rate
I like setting my key repeat rate and key repeat time to very fast settings. You can set this under System Preferences > Keyboard > Keyboard
.

Enable meta key in terminal
To use option
as the meta key in Terminal, enable it in Terminal > Preferences > Profiles > Keyboard
:
