Developing software in the Real World

Notes on keyboard only use of macOS

It's been a while since I could use a trackpad without pain and even longer since I could use a mouse or trackball. Currently I use a Wacom tablet as my mouse which works really well as long as I don't use it too much. Fortunately, keyboard usage doesn't seem to be a problem (yet?), so I try to use only the keyboard as much as possible on macOS (née OS X). These are some notes for others who may be in the same boat.

This is a potpourri of items as I think of them. Hopefully, over time, I'll come back to this article and organise it better!

Alfred

A launcher application is invaluable. Spotlight is built in to macOS and bound to cmd+space. However, I use Alfred with the keyboard shortcut set to the same cmd+space as it's more powerful. This lets me open applications, folders and run scripts very easily.

Shortcat

Shortcat allows me to click on any control in a native application (known as Cocoa applications) via the magic of macOS's built in accessibility system. This is fantastic and has to be seen to be believed. I've bound it to alt+space and once activated, I type in the first letters of the thing I'm trying to click and it will highlight it. I can them press enter to click it, ctrl+enter to right click it, etc. Even more usefully, typing . into the Shortcat box will highlight every control in the window, so I can click on items that do not have any associated text.

It is this tool more than anything else, which makes macOS usable without a mouse.

Customise keyboard shortcuts

The System Preferences -> Keyboard -> Shortcuts page allows you change or add a keyboard shortcut to any menu item of an application. This is wonderfully useful! You can also set global short keys to Automator scripts, though I tend to use Alfred for this personally.

Note that on macOS, some menu items have alternatives. Hold down the option key to see those.

For right clicking, I use Shortcat. This is rarely needed on macOS as the right click menu's items are usually available directly from the main menu.

Keyboard access to windows and other control areas

In System Preferences -> Keyboard -> Shortcuts, set the "Full Keyboard Access: In windows and dialogs, press Tab to move keyboard focus between:" setting to "All controls".

There are a number of useful focus controls on ctrl+function key combinations:

  • Ctrl+F2 : Focus menu bar
  • Ctrl+F3 : Focus Dock
  • Ctrl+F4 : Next window (Remap this to Option+Tab in System Preferences->Keyboard->Shortcuts->Keyboard)
  • Ctrl+F5 : Focus the toolbar
  • Ctrl+F6 : Focus floating window

Ctrl+F6 is a godsend when you want to change a font using cmd+T or perform a spelling check using shift+cmd+;.

Search for menu items using the keyboard

One of the nice things about well-written Mac native apps is that pretty much all operations are available as a menu item. You can access the menu via the keyboard by pressing shift+cmd+?. This opens the Help menu with the search box focussed. You can now type the first few letters of the menu item you're looking for and easily find it. Alternatively, use the arrow keys to navigate the menu.

Moving and resizing windows

I use Moom. Alternatives include SizeUp, Phoenix and Spectacle.

This is how I have Moom configured:

Moom png

(I use W, A, S, D, Q, E a lot.)

Browsers

As I've said, Safari is my main browser as it supports Shortcat and the cross-platform ones don't. However, I have a link selector extension for all three main browsers as it's quicker on Safari for well written HTML and the only option in Firefox and Chrome:

Also on Safari, turn on the "Press Tab to highlight each item on a webpage" setting in the Advanced tab in Preferences.

Other resources

See also:

Fin

Every so often, I will get "stuck" in a control or app and can't get out. This is really frustrating and invariably, the only solution is to use the mouse. The web in particular is the most problematic, including apps that are essentially websites in a window. I've also noted that apps that write their own versions of the native macOS controls are generally inaccessible as invariably the developer doesn't hook into the Cocoa accessibility framework with their own control.

The Mac has a really good accessibility framework and it seems that all native apps get it for free. As a result, it's certainly possible to use macOS without a mouse with the right tools and knowledge.

(Last updated: 9 April 2018)

3 thoughts on “Notes on keyboard only use of macOS

  1. This is really useful, I especially like the look of Shortcat — just signed up for the free trial!

    Check out Keyboard Maestro if you haven't already. It's an extremely versatile app.

Thoughts? Leave a reply

Your email address will not be published. Required fields are marked *