Custom Shortcuts and Finding Unused Combinations

Scrivener and Scapple, like all Mac software, can have its menu commands customised. If you don’t like an assignment we made, or use functions on a frequent basis that we didn’t provide a shortcut for, the choice is (almost) always up to you.1

The Problem

Finding free shortcuts on your system can sometimes be a bit of a hassle though. While it’s great that Apple has provided a system-wide tool for customising shortcuts, its approach to doing so is extremely simplistic, incapable of even warning you of colliding assignments, and is of a design that hasn’t changed since Mac OS X came out over twenty years ago.

On top the opaque interface, there is Scrivener’s roughly 160 bound shortcuts to avoid, the Mac itself (a stock system will assign 30 shortcuts for the OS itself, most of which can be changed), never mind any programs you install that may set up global shortcuts to their Services or other less visible utilities. Like Scrivener’s Scratch Pad, these global shortcuts are typically not listed in a central area, but found in the software’s own preferences. While we can list all of Scrivener’s shortcuts for you, listing everything else would be impossible, and different from one system to the next.

The Solution

Fortunately for us, there are conventions that developers tend to follow in how keyboard shortcuts are designed, and that means there are predictable holes around those conventional areas where we can much more safely create our own shortcuts. Here are two rules of thumb that can help with finding these holes:

  • Mac software rarely uses shortcuts that involve only the Ctrl key. Ctrl+Opt is also a bit more unusual. Thus it is often very safe to create custom shortcuts using those combinations as a base modifier. The main exception will be if you know of and prefer to use the so-called UNIX friendly text editing shortcuts (Ctrl+a for example will move the cursor to the beginning the current paragraph, and Ctrl+e to the end). If you don’t use those, then it doesn’t matter if you overwrite them.

    So that right there gives you about 100 shortcuts you can be confident in using.

  • Software also very rarely makes use of the F1 through F12 (and on up to F15 on some extended keyboards) function keys. Those can be thought of as exclusively available to users, and as a result have a few special characteristics most other keys do not:

    1. You can use them by themselves as a shortcut. You wouldn’t want to use R all by itself as a shortcut while writing, but F4 is just fine.
    2. They have no shifted, optioned or shift-optioned alternate characters. Shift-r is of course R, Opt-r is ® and Shift-Opt-r is ‰. With F4 none of those are special, and are thus available as modifier key combinations that you’d typically need to avoid.

    With the base key itself considered a shortcut, and all possible permutations of the modifier keys, we can get a lot of variability out of these keys. I’m no mathematician, so I’ll leave the binomial calculation of all the possible combinations to my betters, but you’re in the realm of hundreds of available shortcuts just from that top row of keys most of us ignore!

    If you’re like me, you’ll grow to find these F-keys more useful than changing the brightness of your monitor or whatever, and switch them to be the default in the Keyboard system preference pane. If I want to change the brightness of my keyboard backlight, I can use Fn+F5 and Fn+F6 easily enough. It’s a simple factor of ergonomics at that point. Fn+F7 is a lot easier to press than Fn+Shift+Cmd+F7 every time I want to use my shortcut for File ▸ Sync ▸ with External Folder Now.

With these suggestions you will have no available shortage of shortcuts in every program you want to customise and little fear of conflicting with global shortcuts or each program’s own setup.

  1. There are a few shortcuts in Scrivener that have no menu equivalents, that are hard-coded into the software. ⌘6, which switches between bookmark lists in the inspector, is an example.

Two applications mac users may find useful:

  • Fluor remaps the function keys based on the current application, so if you want to use the function keys to control eg. keyboard backlight etc. everywhere except when you’re using Scrivener, Fluor can do that for you.

  • Better Touch Tool provides the ability to map basically any key, touchpad interaction, mouse movement or whatever to mean whatever you want it to, from launching applications to calling menu commands to entering keystrokes to whatever. It can do so system wide, and/or specific to a single application. I use it all the time to make keyboard defaults that make more sense to me; for example I’ve mapped ctrl-keypad-5 system-wide as play/pause for music, because it’s easier to find than the one Apple thinks I should use; and for Scrivener I’ve defined cmd-ctrl-T to “Copy documents as TOC” so I can more easily recreate my TOC as I muck about with the Compile options. So you could use BTT to make any key you want send a ⌘6 to switch between bookmark lists in the inspector, if it pleased you to do so!



I have great use of “KeyCue” from this will show you alle key komnibations for the apps running. They also have an excelent app called Typinator which is great at saving you tedious repetitions, and makes sure you spell names, phrases etc correctly from time to time.

1 Like

A couple of other useful (and free) tools on this topic are:

CheatSheet, which shows you a list of all keyboard shortcuts in the current app by holding down the Command key for a few seconds.

CustomShortcuts, which provides a simple interface for adding or changing keyboard shortcuts.

These two apps work together, so if you have them both installed and open CheatSheet, you can click an edit button beside a specific shortcut and it will take you to CustomShortcuts with the relevant menu item pre-loaded.

1 Like

The CheatSheet link says it is no longer supported as of Mac OS 15. Is there an alternative?

It works fine on Sonoma.

He has released a new app (free & paid) Anze's Laboratory » KeyClu that does the same.