I use keyboard shortcuts constantly, for everything. I believe it is fair to say that I am obsessed with anything that can save me a few seconds working. I learned this habit from of all things, video games. Even if you don’t play video games you need only to look at a gamers hands while they are playing and you can see the unbelievable speed at which actions can take place. Literally hundreds of button presses per minute are possible.
At my old company, SolidWorks, I had prodded the UI team to out the old shortcut system and bring in a new version for two reasons. First, the old shortcut system was classic clunkiness. I won’t get into it, but suffice it to say it was one of the worst implementations I could imagine. Second, the existing shortcuts were not intuitive and were really a mishmash of commands. The SolidWorks application has literally hundreds of commands and is one of the most complex desktop applications you could imagine. Even the most experienced users can’t know everything that is possible.
So it was with great pleasure when a usability project opened to maximize the use of shortcuts. The end result is the best shortcut management system I have seen devised. You can save yourself a lot of time by learning from their system. I won’t take all the credit for this implementation – PD did an excellent job of setting early specifications and I remember that the developer did a fantastic job completing this project on time and never pushed back on making UI changes. It was truly one of the best projects I got to work on.
So here is the famous dialog with each piece of useful functionality numbered.

SolidWorks Shortcuts Menu
- You can filter the commands by category. For the love of programming do not create dialogs ten screen lengths long with no way to filter them!
- Only show assigned shortcuts. Fantastic way to lookup what you have already assigned.
- Search! Yes!!! Search on category, command, or shortcut.
- Column filters – A – Z, Z – A, and default view.
- Verbose descriptions of commands are essential for new users.
- Easy assignment of shortcuts. Click in shortcut key field and then click the key combo you want. No weird things where you click in the field and then press enter or double click to being keyboard listening and then… I’m already lost.
In addition:
- You will support extra mousebuttons.
- The category selection, search and column filter performance is instantaneous.
- SW supports multiple shortcuts per command which isn’t a bad thing. It does mean that they created a reserved key – “Backspace” – for removing an existing shortcut and also added a “remove shortcut” button. Personally I would do without the remove shortcut button. If you will not support multiple shortcuts then the UI flow should be clicking in the shortcut field automatically removes the old shortcut.
- I think the copy and print buttons are redundant because copy can do the same thing as print with minimal extra steps. KISS.
- The dialog is resizable – yes please.
The one big improvement:
- Clicking a toolbar button in your app should filter your list to just that item. Frequently the buttons exposed at the UI level are the ones you want to be adding shortcuts for. Make it stupid easy for your user to find the command they want to shortcut.


