I’ve spent a fair amount of time customizing my Mac setup to my liking. Here are a few of my favorite tools and how I use them:


I use Hammerspoon as a window manager, hotkey manager and simple menu bar app replacement. It is a crazy powerful bridge between your operation system and a Lua scripting engine, exposing some powerful OS functionaility for your scripting pleasure. You can find my setup here. Note: much of it is borrowed others’ configurations.

Karabiner and Seil

Karabiner and Seil allow you to customize your keyboard. These apps let you modify your key repeat rate and override certain keyboard keys (Seil is specifically for the caps lock key and some other keys on international keyboards). I use these utilities to increase my key repeat rate and to make the caps lock key another escape key. This helps for vim and also I never accidentally press caps lock.

Bash aliases

I’ve written about managing these before. I use (a lot of) bash aliases to save keystokes and add useful addtionaly functionality to my frequently used commands. These take on the form of one line aliases or functions and can be configured for arbitrary complexity and can accept arguments. A few examples:

alias l.="ls -ltra"

# python or use ipython if available
function p() {
    ipython --version > /dev/null 2>&1
    if [ $? -ne 0 ]; then


Alfred has been what Spotlight is now for years. Now it’s even better and I continue to be a loyal Alfred user. While it duplicates some of the functionality described above such as hotkeys, it’s my go to application launcher, google searcher, calculator and dictionary/spell checker. After a few days of using it, it will know exactly what you want from it just a few keystrokes into the command you are typing. The freemium version is good. The powerpack is better and supporting fellow developers is a good thing :).

This list summarizes my current setup. If anything changes dramatically, I will write a follow up to this post.