Skip to content

kswedberg/dotfiles

Repository files navigation

dot files

These are the dot files for my MacBook Pro. A lot of the stuff in here was taken from the illustrious Mathias Bynens (https://github.com/mathiasbynens/dotfiles) and others.

This README is a work in progress.

Using:

Note: If you are using a 2020+ Mac with an Apple Silicon CPU, some of the file paths have changed for tools installed by Homebrew. In particular, /usr/local has changed to /opt/homebrew. In this case, you should use the apple-silicon branch instead.

Initial Setup

  1. From Terminal.app, clone this repository from the home directory.

    • If you get a warning about xCode developer tools being required, follow the instructions to install them.
    • After installing xCode dev tools, run sudo xcodebuild -license accept. Otherwise, the setup routine could abort.
  2. Modify Brewfile to only include the apps you want to install.

  3. Modify files in init/ directory to only install dependencies you want to install

  4. Important: The init/macos.sh file has some very opinionated settings. Make sure you comment out the ones you don't want to set.

  5. Run ./setup.sh from this project's main directory. Doing so makes the following happen:

    • Homebrew: Installs Homebrew if not already installed. Updates brew, and runs brew bundle, which install a crap-ton of brew, cask, and Mac App Store apps via the Brewfile.
    • Node.js / nvm: nstalls nvm if not already installed. Optionally installs the most recent version of node.js. (See and possibly run init/npm.sh if you want to install some global npm packages.)
    • Composer Installs global Composer packages for PHP
    • Ruby / rbenv: Optionally installs and sets a globally Ruby version using rbenv. If you answer "n" to installing, you can do it manually as outlined in step 6.
  6. Install and set a global Ruby version using rbenv:

    # List available versions
    rbenv install -l
    # Install a recent version. For example:
    rbenv install 2.6.5
    # Set global version to installed. For example:
    rbenv global 2.6.5
  7. Run ./setup2.sh from this project's main directory to install global node modules and ruby gems listed in ./init/npm.sh and ./init/gem.sh, respectively.

  8. Copy or symlink files from this project's home/ directory to the MacOS home directory (~/). This should be automated in the future.

Files to manually copy

  • ~/Library/Fonts

Additional Configuration

File Associations

Associating multiple files types with a particular app can be a hassle, so this repo contains a function to make the process a little easier for files you might want to open with your text editor of choice.

  • From the command line, run create-dummies-for-open-with
  • Follow the instructions, repeated here for your edification:
    1. Open ~/dotfiles/dummies in the Finder
    2. Select all the files ( a)
    3. Press i
    4. In the info window that appears, click "Open with…", select the app, click "Change All…"

When you're finished, you can delete the dummies folder.

Enable TouchID for sudo

Source: tweet on 2017-11-16 by @cabel

Note: There might be security implications to doing this. Proceed at your own risk.

  1. Open /etc/pam.d/sudo for editing: sudo vim /etc/pam.d/sudo
  2. Add this to the top of the file and save: auth sufficient pam_tid.so
  3. Profit

Apps Not Installed Here

The following apps need to be manually installed:

  • Luminar
  • MAMP Pro
  • SuperDuper!

Some Important Files

  • Brewfile: manifest for installing brew packages, cask apps, and MacOS App Store apps
  • home/.antigenrc: config for installing zsh plugins, etc
  • home/.mackup/custom.cfg: config for extra files to symlink from ~/dotfiles/home/ to ~/

Before wiping a drive

  • Backup the whole thing. Duh.
  • Run ./backup.sh from this project's main directory
  • Dump local rethinkdb databases
  • Dump local MySQL databases
  • Dump local mongodb databases