Mac OS X Development Setup — The Basics

In this series of articles, I’ll attempt to cover a bunch of tools and settings that help me get stuff done quickly and efficiently. It’s an opinionated software development setup that works really well for me on my 13-inch MacBook Pro. Not all of these might work for you, so feel free to pick and choose the things you find useful!

To start with, we’ll make a few changes to the dock, keyboard and trackpad. The screenshots and instructions below assume you’re running OS X El Capitan.

Dock

System Preferences > Dock

With the introduction of Spotlight, you don’t really need the dock to open or switch applications. Just press Command+Space and start typing the name of the application. It’s almost always faster than locating and clicking on the application’s icon in the dock. You can also use Command+Tab to switch between open applications.

Here’s how I’ve set up the dock :

  • Enable auto-hide. Why would you not, if you’re hardly ever going to use the dock? Free up some precious space on your screen!
  • Move it to the right. It’s least intrusive there. On the left, it interferes with the sidebars of editors and IDEs, and at the bottom, it pops up whenever you try to select some text at the bottom of the page.
  • Make the icons smaller. Not too small, but small enough that they do not occupy too much space on the screen even when the dock is visible.
  • Remove all the pinned applications. This setting will allow you to see all the open applications with a quick glance at the dock. And if you’re going to use the Spotlight to open applications anyway, there’s no point keeping apps in the dock when they’re not open.

Keyboard

System Preferences > Keyboard

Just a couple of small changes will help you move around much faster in a text editor :

  • Set ‘Key Repeat’ to ‘Fast’.
  • Set ‘Delay Until Repeat’ to ‘Short’

Tip: Press and hold the ‘Option’ key while moving left or right using the arrow keys. The cursor will move faster by jumping words instead of characters.

Another change worth considering is to reassign the Caps Lock key to Control. Here are a few of reasons for doing this :

  • Caps Lock is probably the most easily accessible key after the Space bar and Return, but you hardly ever use it.
  • Control, on the other hand, is somewhat tricky to find with your left pinky, which is why probably you tend not to use many keyboard shortcuts that involve Control.
  • If you’re a vim user, you can now use ‘Caps Lock+ [’ to quit the insert mode, which is somewhat easier that pressing ‘Esc’.
System Preferences > Keyboard > Modifier Keys

Trackpad

This is where it starts to get interesting. The MacBook has an amazing trackpad and an incredible set of gestures that have become an indispensable part of my workflow. Here’s how I configure the trackpad :

System Preferences > Trackpad
  • Increase the tracking speed. One or two ticks below the maximum works really well. It lets you move the pointer around the screen quickly and cover large parts of the screen using small movements. If you touch type, you can now use your thumb to move the pointer around the screen. Very convenient!
  • Enable ‘tap to click’. As much as I love the trackpad, I hate clicking. Why put all that pressure on a finger to press a hardware button when a soft touch will do the job in half the time? This setting also lets you perform clicks with your thumb, because you don’t need to reach out all the way to the bottom of the trackpad.
  • ‘Two finger tap’ for secondary click. It’s faster, softer on the fingers, and lets you perform the action on any part of the trackpad.
  • ‘Three finger tap’ for ‘Look up’. Not very useful for software development, but it’s handy for quickly looking up words in the dictionary or entries on Wikipedia.
  • ‘Swipe up with four fingers’ for Mission Control. This is one gesture I use very frequently. I have 4–5 desktops, one or two for each project I’m working on, with 3–4 related windows per desktop. I use this gesture to switch between applications and desktops, and to move applications from one desktop to another.
  • ‘Swipe with four fingers’ to switch between desktops and fullscreen apps. This is another gesture that fits in really well with my development workflow. For instance, when I’m working on a website, I open an editor and a terminal window in one desktop, and a web browser in an adjacent desktop. I use this gesture to quickly switch back and forth during development.
  • Three finger drag. This one is a bit tricky to enable, but once you’ve enabled it, you’ll never need to use the hardware click button again. It is located under “System Preferences” : “Accessibility” : “Mouse and Trackpad” : “Trackpad Options” : “Enable dragging (three finger drag)”. Once enabled, you can swipe with three fingers to select text and drag-n-drop items. It’s really smooth. Give it a shot!
System Preferences > Accessibility > Mouse and Trackpad > Trackpad Options
  • Zoom screen using Control + scroll gesture. This is really handy when you want to take a closer look at a specific part of the screen. Just hold Control (or Caps Lock if you’ve remapped it to Control), and scroll to zoom in. It is located under “System Preferences” : “Accessibility” : “Zoom” : “Use Scroll gesture with modifier keys to zoom”.
System Preferences > Accessibility > Zoom

Bonus - Window Management

As a programmer, you’ll often need to look at multiple windows at once. For example, the following screenshot shows an arrangement of windows I end up using very frequently for web development:

A browser, an editor and a terminal

I achieve this kind of a layout using Moom. It’s not free, but it’s totally worth the price, because I end up using it at least once every 10–15 minutes. Spectacle is a free and open source alternative to Moom, that covers most of the common use cases.

Moom in action

I use Command+Shift+M as the hotkey for Moom and I’ve set up F, V, J and N as shortcuts to move and resize windows to the four quadrants of the screen. Here’s my Moom configuration:

Conclusion

While the settings covered in this articles may seem like minor changes, they have become a very important part of my workflow. I hope you find some of them useful.

In the articles that follow, I’ll go over the process of setting up a terminal (using iTerm2 and Oh My Zsh!) and a source code editor (Sublime Text).


Thanks for reading! If you liked this post, please hit the ❤️ button below. Follow aakashns on Twitter for more articles like this.

If you have tips and tricks of your own, please leave a comment, and I’ll try to include them in the article. Have a nice day!