Are you using this editor and that version control app? Think bigger. Instead of jumping between applications or forcing yourself to an IDE use your Mac as a system where apps work together for the greater good.
The main idea is to use your environment as a single entity rather that a collection of various application. Let me show you some tricks that help me do the job. Basically it boils down to some simple concepts:
- Control everything from the keyboard.
- Limit distractions.
- Have a system behind the madness.
I control everything from keyboard: apps, windows. Is it faster and less distracting if you don't have to reach for mouse. And this is something Windows got right. Mac forces you to use mouse more often. It's not that much of a problem if you are on Macbook. Trackpad is always within the reach, but still, things could be better. Let's fix them.
Full Keyboard Access to
Full Control in
Keyboard > Shortcuts
pane of System Preferences. Now we can switch between buttons and click
checkboxes in pop-up windows from keyboard. Not everybody knows that you can use
Cmd-First letter of the button in popup as well. So you can press
Don't Save in Save Dialog.
Enable function keys to be used as such. You will have to press
with brightness and volume control but that will allow you easier reach for the
Menu bar we will hide next.
Hide dock with
Cmd-Opt-D and the menu bar in
General > Automatically hide
and show menu bar. El Capitan allows us to use almost the whole screen estate
apart from the tiny bar at the edge of the screen where hidden Dock is located.
To quickly access Menu or to have a peek at the current time you can use
Cmd-?. The help shortcut
Cmd-Shift-/ opens help
menu from which you can search and execute menu items available in the app.
Additional shortcut to remember are:
Ctrl-F8 to reach application icons in
Menu if you need them. And, maybe,
Ctrl-F7 to toggle keyboard control back on
if you accidentally disable it.
Go menu shortcuts. It will save you a ton of time and if you
Cmd-Shift-G to switch to a folder you can autocomplete paths using
Tab. I use
Connect to Server
shortcuts all the time.
And don't forget you can switch views in Finder with
I don't think I am using anything other than
Cmd-1 (Icons) and
In other apps like Chrome or iTerm you can use
Cmd-Numbers to quickly switch
Another semi-hidden option in OS X is full-screen zoom. Enable it in
Acessibility > Use scroll gesture to zoom. Leave the keyboard modifier as
Ctrl and make sure
Zoom Style is set to
Fullscreen Zoom. Now you can zoom
in and out by scrolling while holding
Ctrl. This is very useful if you need
to make sure the pixels are in place or to show something to a person across
Don't forget to disable
Smooth images as it blurs the zoomed in image and you can't
see individual pixels clearly.
Karabiner and Seil
I use these two tiny utilities by the same developer for additional keyboard tricks.
Karabiner takes care of switching layouts
for me. I don't switch between layouts, I just press
Left Shift for English and
Right Shift for Russian. So before writing code I just hit
Left Shift and I
am sure I am using English. This is it.
Being a Vim user I have
Caps Lock mapped to
Seil adds additional mapping to
Caps Lock so it serves both as
Ctrl when held and as
Esc when hit once.
I don't minimize. I find this annoying. If there is too much clutter I simply
hide either the current app via system shortcut
Cmd-H or hide everything else
Cmd-Opt-H (Hide Others). Some apps might need
Cmd-0 to show main window
after gaining focus again. If anything did not show up you can check in
Window for the
Show Main Window shortcut for the given app.
To control windows I am using SizeUp. It allows me to size windows to half, quarter, and full-screen. I move windows between screens and center them so I can see a little bit behind around the edges of the screen. There are many like it, but this one is the best tool for the job as I can do everything without lifting hands from keyboard.
I am a bit biased partly because of the involvement in development process (Hi, Steve). But mostly because SizeUp out-of-the box comes with the most settings I agree with. The only thing I am not content with is up arrow pointing to the upper right corner. I still think it should be the upper left.
The only setting I change is 90x90% size for the
Center Window and maybe
Move to Space shortcuts.
Check their website for other tiny window management apps that offer slightly different ways.
And of course BetterTouchTool. This app is indispensable. Without it the Trackpad would be only half as useful.
First thing to do is to free three-finger-swipes left and right for BTT. Open
Trackpad Preference Pane and change
Swipe between full-screen apps to
Swipe with four fingers
Now we can put them to good use to switch between tabs for all applications.
Some apps require special treatment so you would have to add them separately.
For instance I have
Cmd-Shift-] mapped for Safari.
It might be a bit tedious and I wish it had Dropbox sync. BTT can replace SizeUp since it can do almost everything SizeUp does if not all. But entering a dozen of shortcuts is not very fun task. This is why I am still using these two apps together.
Another free and open-source alternative to SizeUp:
Spectacle. It overrides almost system-wide
Cmd-Opt-Arrows that are used to switch tabs in most applications.
So if you are using it with BTT you will have to do some additional
BetterTouchTool also adds window snapping akin to Windows' AeroSnap which is pretty nice when you are feeling too lazy to reach the keyboard. Just drag a window to a screen edge or into the corner and it gets resized accordingly.
Usually I am putting windows side-by-side on a single screen. When I had two monitors that were big enough and could be rotated vertically splitting each in two part gave me four almost "virtual" screens.
None of these apps have Menu or Dock icons enabled. I am not the most organized or efficient person so I hide and disable everything to limit distractions and have tidier screen. If you need to access setting - launch the app again.
When there is not enough space on a single screen I launch EyeFriendly. It has only two shortcuts assigned that allow me to switch resolutions up and down. This is really useful if I need to see what site I am working on looks like in bigger resolution. Or if there is not enough space to put two apps side by side comfortably.
As it is the case with keyboard layouts instead of switching between apps I am switching straight into the app I need. That makes the computer feel as a whole. I have identified the apps I use most and assigned shortcuts for them. I have tried every Shortcut app imaginable, but only one supported Dropbox sync out-of-the box.
For many the trusty butler serves as replacement for Spotlight. And I do occasional GitHub searches from it as well. But other than that I find Spotlight pretty adequate. Alfred has another important functionality sadly available only in pricey PowerPack -- Workflows.
I have tried different key combos and I think
Cmd-Ctrl works best. So here
are the mnemonics
Cmd-Ctrl-B— Browser (Chrome)
Cmd-Ctrl-G— Git (gitx-dev)
Cmd-Ctrl-T— Terminal (iTerm)
Cmd-Ctrl-Q— SQL (Sequel Pro)
Cmd-Ctrl-Z— Messages. Kind of like Un-Do, get it?
Cmd-Opt-Ctrl-~12345— To rate music in iTunes
Space which is much too powerful is also my leader key in Vim and
I control Tmux with
Cmd-Opt-Ctrl-Space— Alfred, it can't go unassigned and I do occasional GitHub searches
You know you can press outlined buttons in modal dialogs with
preview files in Finder without opening them, right?
Here is a version of the App Shortcuts Workflow that comes preloaded with some variants of apps (Sublime/Atom, iTerm/Terminal, Chrome/Safari) you can use to build your own system.
Some other shortcuts are defined inside the apps that use them. I was experimenting with double assignments so Alfred launches as app and then the same shortcut activates the app function but it turned out to be not very reliable. So I have some shortcuts defined in the apps that are either auto-started like NVAlt or that I use from time to time like Sip or ColorSnapper before that:
Cmd-Ctrl-C— Color (Sip/ColorSnapper)
Cmd-Ctrl-L— Notational veLocity (NVAlt), too bad it's not updated anymore.
Cmd-Esc— iTerm again. This one toggles full screen terminal window.
I have also had mappings for Textmate, Sublime and Atom, while trying to use them.
Switched to Vim since so everything is happening in terminal. I am using iTerm with
General > Lion Style Fullscreen disabled. After that I can use
Cmd-Enter for true
fullscreen mode I wish other apps had.
Here's a cool trick that allows me to refresh Chrome without leaving the editor.
I have another shortcut in Alfred
Cmd-Opt-R (that has a nice system-wide ring to it).
It launches this piece of AppleScript:
on alfred_script(q) tell application "Google Chrome" reload active tab of (get window 1) end tell end alfred_script
This little piece of code refreshes the current window in Google Chrome so you don't have to switch focus.
It is especially useful if you have two screens so you can use one for editing and refresh browser in another.
I hope that gives the idea how everything is tied together. I jump from Mail to
git fetch, edit, jump to GitX, review changes, jump to browser,
open two apps side-by-side, edit in one window, see changes in another...
This approach also give you some modularity. If you don't like GitX, change it
to SourceTree. Don't like Sublime, change to Atom. You can replace and fine
tune individual parts of the system but still be sure when you press
Cmd-Ctrl-T you get to the terminal. Be it iTerm or Terminal or I don't know
So this is the staples of my day-to-day process. Please let me know if you found anything useful and share some of your tricks.