This article focuses on making the mouse redundant and increasing your navigation speed using only a keyboard on macOS.

Unless you’re wielding a Power Glove, your one-handed mouse is likely slowing you down in the long run; instead you could be commanding and navigating your machine with only your keyboard.

When starting out, a mouse will be faster to navigate through programs and directories; over time as your computer literacy and usage improves you may find your speed to get things done plateaus. To further increase speed you may adjust your system’s mouse speed, taking shorter movements or even use drifting techniques to move across a page quicker - ultimately you’ll max out on optimising mouse usage for individual movements and you may be limited by the system UX to navigate and execute commands.

Beginner

Already confident with basic hotkeys opening apps, tabbing through, resizing windows and swapping between multiple desktops? jump to Intermediate usage to ditch the mouse.

Opening applications

The quickest way to open an application is by using the hotkey combination to open a system search box which will allow you to type the name and fuzzy match with suggestions for the destination you’re looking for:

command space

For example to open VS Code you can type:

command space -> code -> enter/return

Desktop navigation

Let’s begin with swapping between applications. Most modern operating systems allow you to have multiple desktops, you can pin applications to each desktop by default, for example:

  • Desktop one: Media app (Spotify)
  • Desktop two: Messaging application #1 (Slack / MS Teams)
  • Desktop three: Web browser
  • Desktop four: Text editor / Integrated development environment (IDE)
  • Desktop five: Messaging application #2 (Whatsapp web, Viber)

You can swap between these use control [num]; you’ll need to update your system preferences to enable keyboard shortcuts to swap to each desktop by ticking each desktop in:

System Preferences -> Keyboard -> Shortcuts -> Mission Control -> Switch to Desktop [num]

Now, with each application open on different desktops, which could be across multiple screens, you can hit crtl 3 to jump to your pinned app, in my case a web browser.

Window Management

This section focuses on minimising, maximising, and splitting applications on a screen.

Rather than using the mouse to click and resize an application or hitting maximise at the top left, use Rectangle. This hotkey application let’s you use key combinations to split windows left and right, to corners, to go full screen without maximising and creating a new window entirely - it’s great!

I use option command left arrow and option command right arrow to split my screens to read docs on the left and have a text editor on the right for a single screen; this is one example of when it’s useful to shift and resize windows - another is on video calls to keep messaging apps alongside. You can force an application to your other monitor with control option command left/right arrow, especially helpful when plugging into dual monitors and rebalancing which screens you want individual applications on. This application dramatically reduces window management time. If you use brew to download and manage applications, you can get it with the following command:

brew install --cask rectangle

Resting position

This sections rests upon you using a QWERTY keyboard. Keyboard letters are placed such to improve typing speed with access to the most frequently required letters, improving efficiency and less finger movements; this goes back to typewriters, long before modern computers existed.

Those interested in touch typing will know that the F and J keys orientate your hands to the keyboard’s home row (left hand: A,S,D ; right hand: J,K,L); if you’re into video games, in-game character navigations is via W,A,S,D - with your middle finger on W and likely a little finger on the left shift key. Most applications follow the same base keyboard patterns, shortcuts and hotkeys, they’re reused across the system. With the above two examples in mind, software developers expect the average persons hands to be on the home row and base a lot of shortcuts using modifier keys around there.

We’ll focus on the left hand: if your hand is on the home row, you have easy access to all of the modifier keys: shift, option, command and the space bar - but less so for control. Depending on your keyboard you may have control in the bottom left, or it could be to the right of a function key or similar in that position, this makes it more difficult to reach, or rather more uncomfortable. To get round this I would strongly recommend:

Remapping Caps Lock as Control

Caps lock is a waste of a key, when you need to type a capital letter, just hold a shift key simultaneously. Let’s liberate the space and remap to control, so in the hand position described, if your ring-finger is on A, your little finger is on Caps lock (now control). There are two good options to remap the keys:

  1. Do it from system preferences.
System Preferences -> Keyboard -> Keyboard -> Modifier Keys...
  1. From the terminal and activated on start up.
curl "https://raw.githubusercontent.com/AdamDewberry/mac-setup/main/remap-caps-lock-to-control.xml" > ~/Library/LaunchAgents/local.hidutilKeyMapping.plist

launchctl load ~/Library/LaunchAgents/local.hidutilKeyMapping.plist

I opt for option two as it is a part of a mac setup script I run to fully configure the machine to my preferences.

Tabbing through pages

For applications like web browsers, you can use tab to switch between them. control tab to move to the next tab, control shift tab to open the previous tab to the left. If you’ve remapped Caps Lock to control, this will be particularly comfortable.

Tabbing through elements

Again, for applications like web browsers, you can use tab to move between sequential elements using tab to move to the next element and shift tab to open the previous element.

Intermediate

If you’re already familiar or enjoy using hotkeys and the command line interface to interact with a machine, there are several applications that may appeal to avoid using the mouse or trackpad and navigate on-screen elements and increase productivity.

Homerow for searchable / clickable on screen elements

The first is Homerow, created by Dexter Leng, a vim inspired mac app which makes elements on screen searchable, currently it works with common applications like Chrome and VS Code, though electron apps (which there are many!) are not yet supported.

To search within a page, hit:

command shift space

This will bring up the search box and highlight the clickable element selected, if there are multiple of similar names you can tab through them (similar to above). It has a tutor built in which you can see the system descriptions used for each element by, yes, hovering your mouse over them.

I’ve been using Homerow for a few months and am enjoying it immensely. Like all things valuable, they (probably should) cost money. The lifetime license is quite reasonably priced and it’s good to support developers making quality-of-life improvement tools. Homerow is based off of its open source predecessor vimac.

Vimac

vimac aims to replace button clicks with text shortcuts as an application overlay; overall it’s a great application but has been deprecated in favour of Homerow. You can run both in parallel on your machine but that is almost redundant and given vimac has been sunsetted, it’s wiser to go with Homerow for ongoing support.

Vimium

If you want to use a text-based shortcut overlay specifically for Chrome or firefox, give vimium a go, it is excellent for dynamic content and will have you hopping through the browser at speed!

It does a similar job to Homerow and vimac, so try this as a lightweight offering and if you enjoy hotkey based navigation, then look into Homerow.

Fast scrolling with KeyboardScroller

Another fantastic utility from Dexter Leng, KeyboardScroller, allows you to program hotkeys for scrolling and jumping down or across a page. I use shift control arrow-up/arrow-down at scroll speed 3 px/ms to move around; it works fabulously alongside Homerow and the window/application management commands in the beginner section.

Summing up

If you want to go mouse-less, you’re now a step closer. The above patterns and tools will help you get there. Rectangle, Homerow and KeyboardScroller have become essential in my day to day workflow, I would highly recommend trying them in combination.

There are a number of built in keyboard shorts cuts that are incredibly useful but not covered in this article, my aim was to reduce the scope to a few holistic patterns but if you wish to delve deeper into what your system can do, have a look in the mac docs.