I like my local development setup to be lean and automated. This allows me to get up and running with a new machine in under an hour. The following is a comprehensive walk through of the tools and productivity modifications that I use.
This walk through references several configuration files. These configuration files (typically referred to as dotfiles) can be found here
Rebind Caps Lock to Control
To rebind Caps Lock (⇪) to Control (⌃) go to System Preferences > Keyboard > Modifier Keys… and change Caps Lock (⇪) Key: to ^ Control.
To configure macOS shortcuts, go to System Preferences > Keyboard > Shortcuts.
For macOS, my shortcuts are as follows:
|Show Spotlight search||
To configure application shortcuts, go to App Shortcuts > + and enter the Menu Title as given in the application and the desired keyboard shortcut.
For Chrome, my shortcuts are as follows:
|Select Next Tab||
|Select Previous Tab||
|Reload This Page||
Remove dock auto-hide delay
On the off chance that I use the dock, this ensures that it appears without a delay:
defaults write com.apple.dock autohide-time-modifier -int 0 defaults write com.apple.dock autohide-delay -int 0
Enable Key Repeat
To enable key repeat, use the following command:
defaults write -g ApplePressAndHoldEnabled -bool false
To modify key repeat speed, go to System Preferences > Keyboard > and increase or decrease Key Repeat and Delay Until Repeat.
Git is a version-control system for tracking changes in computer files and coordinating work on those files among multiple people.
The easiest way to install Git on macOS is to install the Xcode Command Line Tools:
ln -s ~/path/to/remote/.gitconfig ~/.gitconfig
iTerm2 is a replacement for the standard macOS terminal.
curl -LOk https://iterm2.com/downloads/stable/iTerm2-3_2_7.zip unzip -q iTerm2-3_2_7.zip mv iTerm.app /Applications rm iTerm2-3_2_7.zip
To set the plist, go to Preferences > General. Under Preferences, set Load preferences from a custom folder of URL to the location of
To set the color scheme, go to Preferences > Profiles > Colors > Color Presets… > Import… and import
colorscheme.itermcolors. colorscheme will then appear under Color Presets….
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"
cd ~ git clone https://github.com/NickolasHKraus/oh-my-zsh .oh-my-zsh cd .oh-my-zsh git remote add upstream email@example.com:robbyrussell/oh-my-zsh.git
ln -s ~/path/to/remote/.zshrc ~/.zsrhc
Powerline is a statusline plugin for Vim, and provides statuslines and prompts for several other applications including tmux.
pip install --user powerline-status
This will install Powerline to the Python user install directory for your platform. On macOS, this is typically
Note: If you use a virtualenv, you will need to install
powerline-status to it as well.
I am currently using the default configuration of Powerline.
Powerline fonts are pre-patched and adjusted fonts for usage with the Powerline statusline plugin.
git clone https://github.com/powerline/fonts.git --depth=1 cd fonts ./install.sh cd .. rm -rf fonts
There is no further configuration needed for Powerline fonts.
Homebrew is an exceptional package manager for macOS.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
There is no further configuration needed for Homebrew.
tmux is a terminal multiplexer. It enables a number of terminals to be created, accessed, and controlled from a single screen.
brew install tmux
ln -s ~/path/to/remote/.tmux.conf ~/.tmux.conf
Vim is an enhanced clone of the vi editor. It is highly configurable and extremely useful for productive, efficient programming.
brew install vim
ln -s ~/path/to/remote/.vimrc ~/.vimrc
Vundle is a Vim plugin manager. It allows you to install, update, and configure Vim plugins all from within your
git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim
To install Vim plugins, execute:
vim +PluginInstall +qall
mpv is a free, open source, and cross-platform media player.
brew install mpv
ln -s ~/path/to/remote/mpv.conf ~/.config/mpv/mpv.conf
Spectacle is a simple, customizable application for moving and resizing windows.
curl -LOk https://s3.amazonaws.com/spectacle/downloads/Spectacle+1.2.zip unzip -q Spectacle+1.2.zip mv Spectacle.app /Applications rm Spectacle+1.2.zip
ln -s ~/path/to/remote/Shortcuts.json ~/Library/Application\ Support/Spectacle/Shortcuts.json
Ag (The Silver Searcher) is a code searching tool similar to
ack, with a focus on speed.
brew install ag
ln -s ~/path/to/remote/.agignore ~/.agignore
Once you have Ag installed, you can use it with ack.vim by adding the following line to your
let g:ackprg = 'ag --nogroup --nocolor --column'
fzf is a general-purpose command-line fuzzy finder.
brew install fzf $(brew --prefix)/opt/fzf/install
Once you have fzf installed, you can enable it inside Vim simply by adding the directory to
&runtimepath in your
" if installed using Homebrew set rtp+=/usr/local/opt/fzf
Bear is a beautiful, flexible writing app for crafting notes and prose. I love this application because it allows me to write in Markdown.
Gifox is a delightful GIF recording and sharing app. It is great for quickly creating GIFs.
Trello is simple and effective project management tool. I use Trello for organizing all my personal projects.
There you have it, a complete list of the tools and productivity modifications that I use. I am always looking for new ways to increase my effectiveness and will update this article with any new applications or utilities that I find.