Using OS X Without the Mouse
Tags: osx, keyboard, productivity
Published: 2020-05-18 07:40:21

---
title: Using OS X Without the Mouse
published: true
description: "One of the most substantial productivity boosts I've experienced recently is the decision to avoid using the mouse as much as possible on my MacBook. It made me faster at getting stuff done, and also more focused on the task I'm working on. Try it, and your hands will be grateful too: using a mouse is not just slow, but also a significant cause of RSI."
author: Charles Szilagyi
tags: #osx #keyboard #productivity
cover_image: https://charlesagile.com/static/92550948eafd6e6ad8e2d4c2d10838ce/70ff9/photo-1543966888-7c1dc482a810.jpg
canonical_url: https://charlesagile.com/osx-without-mouse
---

Moving away from the trackpad or mouse is not a one time toggle though - it's a process that takes time for everyone. Let's get started on macOS and see what tools are out there to help you along your journey.

# Learn Keyboard Shortcuts

This one is too obvious, still often overlooked: if you repeatedly reach for the mouse to do a particular action, try to find the relevant shortcut in your app.

For system-wide hotkeys, check out the [official Mac keyboard shortcuts](https://support.apple.com/en-us/HT201236).

## Browse commands

A powerful key combination you might want to keep in mind is `⌘⇧\`: it lets you search all the shortcuts of the current app plus run the commands, or simply navigate the menus with the keyboard.

> Use the `⌘⇧\` shortcut to navigate app menus and run commands

![Use the ⌘⇧\ shortcut to navigate app menus and run commands](https://charlesagile.com/c0fd3ae88f5e6f1326ad8b1aa66926d4/keyboardonly-01.gif "Use the ⌘⇧\ shortcut to navigate app menus and run commands")

## CheatSheet

There is a free app called [CheatSheet](https://mediaatelier.com/CheatSheet/?lang=en) that can show you all the shortcuts available in the current window by holding the command `⌘` key.

![CheatSheet showing Sketch shortcuts](https://charlesagile.com/static/7e2d07a0e833465ec0045c6e5be8e7b4/04bec/keyboardonly-02-ch.jpg "CheatSheet showing Sketch shortcuts")

You can even print the hotkey list for future reference if you like.

## Take it easy

You might be overwhelmed at first, but remember: learning takes time. Don't try to memorise every key combination at once. Just let the ones you often use become second nature, then pick up new ones as you go.

# The Scary but Powerful: Vim mode 🙀

Vim is the infamous editor you [can't get out of](https://github.com/hakluke/how-to-exit-vim "How to exit vim?"), right? Well, I'm not saying you should use Vim as your primary editor. There are better alternatives nowadays IMO, although it's still the most powerful text editor probably and [it's not that hard to pick up](https://thoughtbot.com/upcase/vim "Learn Vim at Thoughtbot").

What I'm suggesting though, is to learn the basic movement and command keys of *Vim mode*. It's a brilliant, comfortable and efficient way of using the keyboard. It is probably the fastest way to deal with text editing and writing source code. It has been around for 28 years since Vim came out (!), and seems like there are no significantly better alternatives for now.

You can get started with learning just a handful of shortcuts:

* Move left, down, up, right: `h`, `j`, `k`, `l`.
* Go to the top of the document: `gg` (`G` takes you to the end).
* Go to *insert mode* so you can type any text: `i`.
* Exit insert mode and go back to "navigate" again: `ESC`.

Don't believe the hype; it's not that difficult 🤓

There are countless more tricks, shortcuts and all sorts of magic you can do with Vim. The main thing to appreciate though is that the modal nature of Vim mode allows you to keep your hands on the *home row* of the keyboard so that you can touch-type without interruption. You will need to pick up the mouse a lot less often.

As you'll see below, a lot of new solutions borrow from Vim's keybindings. Even Gmail has matching hotkeys!

## Vim mode in VS Code

Probably all source code editors and IDEs support Vim mode in some form. I use VS Code nowadays ([who knew?](https://charlesagile.com/debug-series-nodejs-browser-javascript)) and probably the first extension I have installed was [VSCodeVim](https://marketplace.visualstudio.com/items?itemName=vscodevim.vim "VSCodeVim extension for VS Code").

![VSCodeVim extension for VS Code](https://charlesagile.com/static/f28b51275e906b885d0c3fbac06d36f4/42cbc/keyboardonly%2003%20vsvim.png "VSCodeVim extension for VS Code")

> VSCodeVim is a Vim emulator for Visual Studio Code.

Combined with the flexible shortcuts of the IDE itself, VSCodeVim allows me to create and change source code fast - significantly faster than otherwise. The navigation inside and between files is also brilliant.

For a  quick overview, check out Using VSCode with the VIM Extension by Richard Bagshaw:

{% youtube 44snngEzNMQ %}

Some of my favourite and most often used features are:

* `gd` jumps to the definition of the symbol (variable, function, import etc.)
* `gh` displays the linter warning/error on the current line.
* Jump to the line I'm looking at by using [relative line numbers](https://code.visualstudio.com/updates/v1_6#_improvements-to-linenumber-and-whitespace-settings) and typing something like `15k` (15 lines up).
* Being able to change code *inside* parens, curly braces or an HTML/React tag with `ci(`, `ci{`, `cit` respectively. You can also change the *whole block* with `ca(`, `ca{` or `cat`.

Plus, the usual, basic editing tricks:

* Adding to the beginning or end of a line with `I` or `A`
* Adding a new line below or above with `o` or `O`.
* Copying, deleting or changing the whole line with `yy`, `dd`, `cc`
* Finding character in the current line with `f`, e.g. `f(` to jump to the next `(`.

# Clicking on Things with Vimac

[Vimac is a fantastic app](https://vimacapp.com/) by Dexter Leng that allows you to "Stop using your clunky trackpad/mouse now" on Mac OS.

By pressing a shortcut, you're presented with a "hint" to every interactive element on the screen. Next, you tap the hint keys to simulate a mouse click - without touching the mouse! 🐭

![Using Vimac with the Appstore](https://charlesagile.com/static/58a35211e9a6d2507e03c8bf91e5c6bd/04bec/keyboardonly%2004%20vimac.jpg "Using Vimac with the Appstore")

There are modifiers to simulate right-click or `⌘`-click, plus you can turn on Vim-like scrolling for lists inside apps.

{% youtube bah8zhTtAvs %}

I strongly encourage you to give this gem a try: <https://vimacapp.com>.

## XEasyMotion

A little tool I'd also recommend and still use for clicking on the screen is [XEasyMotion](https://github.com/h2ero/XEasyMotion "XEasyMotion homepage")

It opens a crosshair on your screen so you can click on anything you'd like, even if it's not interactive. You move the crosshair with `hjkl` by the way 😉

![XEasyMotion animation](https://cloud.githubusercontent.com/assets/1262641/16171960/62cea4f8-35af-11e6-9a2f-ef074c12bcf9.gif "XEasyMotion animation")

*Gif from https://github.com/h2ero/XEasyMotion*

# Clicking on Internet Things with Vimium

Another spiritual successor of Vim is [Vimium - The Hacker's Browser](https://vimium.github.io/).

Vimium works similarly to Vimac, but inside your browser: after installing the extension for [Chrome](https://chrome.google.com/webstore/detail/vimium/dbepggeogbaibhgnhhndojpepiihcmeb) or [Firefox](https://addons.mozilla.org/en-GB/firefox/addon/vimium-ff) you can press a shortcut - `f` by default - then type the letters of the hints where you'd like to click.

![Clicking links on dev.to with Vimium](https://charlesagile.com/static/de7b770da19917add7aae3795d4f1ec8/04bec/keyboardonly%2005%20vimium.jpg "Clicking links on dev.to with Vimium")

You won't appreciate how easy and comfortable browsing becomes until you give Vimium a try!

{% youtube  t67Sn0RGK54 %}

# Productivity apps

Of course, there are many power tools out there designed to help simplify your life and make you faster. Here are some of my favourites.

## Launchbar

[Launchbar](https://obdev.at/products/launchbar/index.html "Launchbar website") is an application, file, folder (etc.) launcher with fuzzy search, an elegantly simple interface and a [staggering amount of features](https://obdev.at/products/launchbar/features.html "Launchbar features").

After pressing the designated shortcut, you can start typing the name of the "thing" you'd like to open. Launchbar can naturally open applications, files or folders anywhere on your Mac. Plus, there are many other entities you can manage: contacts, calendar events, bookmarks, search engines, songs, calculations, text snippets, data from 3rd party apps and so on. It's a powerful tool 💪!

{% youtube 7grtC-TA4Rk %}

The features I'm using the most are:

* Opening and switching between apps - it can even replace `⌘+TAB`!
* Opening files and folders: every file and folder takes the same time to open, just press a few (fuzzy) letters
* Looking up previous clipboard entries and pasting them again and again
* Use ClipMerge to copy multiple things to the clipboard so I can paste them in one go
* Inserting pre-defined text snippets, so I don't have to repeat myself over and over again - and it works in *any* application

I've been using Launchbar for over five years now. These nano-optimisations seem to add up:

![](https://charlesagile.com/static/85134da84d68b6f3339218ef42c1c5d4/a54a1/keyboardonly%2006%20launchbar.png)

## Alfred 

Thanks to [@euperia](https://dev.to/euperia/comment/p70l) for drawing my attention to [Alfred](https://www.alfredapp.com/):

> Its like Spotlight on steroids. You can extend it with add-ons to do things like play/pause/skip spotify, generate passwords, perform google searches etc - all without needing to take your hands off the keyboard.

Sounds brilliant!

{% youtube wyePqBBJPiU %}

## Keyboard Maestro

Finally, a tool that sports a less impressive UX but allows you to automate *anything* on your computer: [Keyboard Maestro](https://www.keyboardmaestro.com/ "Keyboard Maestro homepage")

In their own words:

> Automate applications or web sites, text or images, simple or complex, on command or scheduled. You can automate virtually anything.

This one is an advanced tool, and the possibilities are truly limitless - at least I couldn't find the limits yet. Just to highlight a few things you can achieve:

* Remap keys
* Record interactions with an app or website and replay it
* Fill out forms
* Click on images on the screen
* Replay activity for screencasting :)

Check out a few tips and use cases in this video:

{% youtube Gy_dBHxqZ94 %}

# Desktop managers

The way macOS manages windows is just plain annoying. By default, new apps appear at random places, overlapping each other, forcing you to move them manually. We can do better than that!

## Rectangle

When on a smaller screen, I've used [Spectacle](https://www.spectacleapp.com/) for a very long time. This little tool allows you to snap windows to edges or corners of the screen, or to make them centred or full-screen (and so on), with keyboard shortcuts.

Recently it was announced that Spectacle is not maintained anymore and apparently [Rectangle is a great replacement](https://github.com/rxhanson/Rectangle):

{% youtube 17t0OSziUgY %}

With Rectangle, you can optimise the screen real-estate, de-clutter your desktop and quickly snap new apps to your preferred location, all without touching the mouse. A highly recommended tool!

## Amethyst

When working on a large display, like a 34" ultra-wide monitor, I've found even manual window snapping is sub-optimal. So at the moment, I'm running [Amethyst](https://ianyh.com/amethyst/) - a tiling window manager for macOS.

Essentially, when you run a tiling window manager, instead of manually managing the windows, they are positioned automatically on the screen in tiles (surprise!), so they never overlap.

You can then use keyboard shortcuts to move them around, change the focus etc.

{% youtube boPilhScpkY %}

While it takes a little getting used to such a desktop, I've found it to be more comfortable so far than having to worry about manually positioning windows repeatedly.

Do you have any #mouseless tips and tricks you'd share? [Let me know!](https://twitter.com/thekarel)