The majority of my professional life, and my digital life in general, the mouse has been my best friend. I used to feel the pointer as an extension of my hand. For sure, I was using some shortcuts here and there, but 90% percent of my actions were done with the mouse.
That changed a year and a half ago when I joined The Agile Monkeys and some of my colleagues recommended me some shortcuts and some tools to improve my productivity, and that was just the spark of this article.
If you are like I was, the first question is, why should I stop using the mouse? it feels natural to you and you are sure you are not wasting your time doing it. The answer is, you are not doing it wrong, but you could be more productive.
As developers, our brain is always busy and we are always thinking about multiple things. I realized that I missed my thoughts more than once when doing actions using the mouse. If you are using your keyboard for writing, using your mouse instead of using your keyboard to perform an action involves a physical change, and therefore, a change of focus in your brain.
The key point here is, when you change your focus you are more prone to a change of context.
When discussing productivity, the same topics always come out: programming language, IDEs or operative system. The fact is that the change of context has a bigger impact on your productivity than any other thing.
We have talked about why, now we need to talk about how. The key point here is to distinguish the shortcuts that force a change of focus and avoid them.
Here I'll talk about the tools I use, there are more in the market and I would love to read in the comments what you are using. Some of the tools I list here are paid tools. Also, I'm just talking about tools for Mac OS X that is my current environment but you can find similar tools and do the same things we explain here on Windows or Linux.
This tool is great and you can configure it do to amazing things, among other things, you can create shortcuts for your most-used applications. The shortcut to change between apps is one of the more known, Cmd + Tab, but this shortcut has an important drawback, you will change your focus, you want to change from Slack to your IDE and you will find other apps in the middle and it is very easy to become a change of context.
Having shortcuts to switch between the apps I use every day have changed the way I work, I have shortcuts for Chrome, Visual Studio Code, Slack, Pycharm, IntelliJ, Fork, and some other apps, that means that I can change between them without changing my focus, just pressing a keys combination on my keyboard. In this case, I use the shortcuts Ctrl + Cmd + Alt + (first character of the name of the app).
Magnet is a very simple app that helps you organize your windows on your screen.
The shortcuts I used the most when moving windows are:
- Ctrl + Alt + Left Arrow => Set the current window in the half left side of the screen
- Ctrl + Alt + Right Arrow => Set the current window in the half right side of the screen
- Ctrl + Alt + Enter => Maximize the current window (not entering full screen mode)
- Ctrl + Alt + E => Set the current windows at a size 2/3 of the screen starting from the left border
- Ctrl + Alt + T => Set the current windows at a size 2/3 of the screen starting from the right border
IntelliJ and Jetbrain products are my main IDEs. Working with IntelliJ is great, but when you learn some of the available shortcuts, it's amazing. You should master your IDE and be able to do almost everything you need with a shortcut, it doesn't matter what IDE you use.
IntelliJ has an amusing amount of shortcuts, here I'll list the ones I use more frequently and, therefore, the ones that helps me avoiding changing my focus:
- Alt + Up arrow => Syntax aware selection
- Ctrl + Space => Code completion
- Shift + Cmd + o => Search files (avoids using the tabs)
- Double shift => Search everywhere, it includes search for command you don't know the shortcut for
- Cmd + B => Go to declaration
Chrome Quick Tabs extension
When working with your browser, the Ctrl + Tab shortcut to select the next tab is not efficient, when you have 6+ tabs (something quite common nowadays) you can't be productive by changing to the next or the previous tab. I recommend Quick Tabs extension for Chrome to select a tab by name.
When working with Chrome, there are two ways to select a tab, by tab number (provided out-of-the-box by Chrome) and by tab name (with the Quick Tab extension):
- Cmd + [1..8] => Select a tab by number
- Cmd + e => Select a tab by name
I'm sure I use more shortcuts but the ones I mentioned above are the ones that have made a more impact on my productivity. I would like to know what shortcuts have changed your way of working or if you think that shortcuts are not the answer to increase your productivity.