Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

phatblat's dotfiles

Shell setup and customization along with various system and app configuration files.

I regularly switch between four different Macs and use this repo to sync terminal and some GUI app configurations across them. Many Stack Overflow answers (usually reworked a bit) have landed here over the years.

This repo lives at the root of my user $HOME dir. This confuses some git apps like Tower because I have lots of git repos in subdirectories. But, I prefer to see the dirty and upstream marker changes in the terminal prompt when I'm sitting in my home dir. Otherwise, I forget to commit, push or pull changes.

I started tracking these dotfiles when I was still using Bash. The .bash_profile file sourced all .dotfiles/**/*.sh files on login, which were split up into topic folders to make them more manageable. I later converted this to Z shell but the setup was pretty much the same, but used the .zsh file extension since the syntax can differ from Bash.

I've now converted over to Fish shell, so the .zsh files will not be updated. I find Fish syntax to be dramatically easier to remember. I love that it's not compatible with other shells which have let compatibility with ancient de facto standards get in the way of progress. Seriously, Fish is to other shells like Git is to SVN.


This bootstrap has not been updated since to switch to Fish. I plan to greatly simplify the process as installing/updating will be a set of normal functions.

The script is a half-ass attempt at installing these dotfiles into the $HOME directory of a freshly minted OS X user. It kinda works and something usually breaks when it's run. But, it usually does most of the work and with a kick or two things are up and running.

Run at your own peril!

curl -fsSL | sh

Really, you should look at that script and laugh at the mess I've created instead of running it and hosing your $HOME directory. You have been warned. 💥


.gitconfig is checked in but I use different values on my work and personal Macs. This is accomplished by setting local-only values in the alternate user-global ~/.config/git/config, but is overridden on an as-needed basis by explicitly setting in some repos.

I've crafted a slew of short aliases for all the commands I use regularly. There's even a fancy experimental bundle-pull script for quickly syncing a dirty work tree from one Mac to another.


There are some fancy functions for easily inspecting, bumping version and releasing an app with a versioned xcode project.


Inspired by


This repo is licensed under the MIT License. See the LICENSE file for rights and limitations.


No description, website, or topics provided.




No releases published


No packages published