"The Labyrinth of Shortcuts", One week ago, 1:58 PM #41
Registration date: 23rd Dec 2014
TanteiSakana:Is anyone aware of a single person on the entire planet that actually takes advantage of the computer's ability to distinguish between the left and right shift/control/alt buttons for keyboard shortcuts?
I haven't found any art program which uses this distinction; and I think application software (1) in general should NOT use this distiction as well.
Anyway, I must point out that some non-application software use it, for special reasons. For example, VirtualBox specifically use right Ctrl as a key to escape from an emulation session (and use it as modifier for emulation session operations, like reset and shutdown); and if I remembered correctly, Microsoft Windows' input system also has an option to use L+R Shift as a hotkey combo to switch keyboard layout, together with other combo choices which make distinction between L/R modifiers as well.
^ From these examples; you would see that these L/R modifier distinctions are made, basically to avoid conflict with application software's hotkeys.
GMan003:I could see that being useful. Like Ctrl+P to say "select palette" and then press another key to save/load a color. Actually, you might not even need mod keys - unlike a text editor, you don't use a keyboard for anything except meta commands in an art program, so you could leave off the Ctrl and the Alt prefixes. Like Undo could just be Z, Copy could be just C, Paste could be just V, and so on, with extended sequences being like (P)alette (L)oad (1). That would make it easier to do one-handed, keep the other hand on the mouse or the drawing tablet where it's useful.
Be careful if you are going this route. While the no-modifier key scheme is somewhat common on fullscreen graphical application software from Unix-like world; it is alien to users familiar with Microsoft Windows, and it doesn't mix well with widgets.
(What happens when the user use text tool? Would typing there trigger unwanted edit operations? How "focus" is going to be managed? Which function/mode of the program where it would be acceptable for these hotkeys to be unavailable? And so on)
While I do see advantages about one-hand operation that @GMan003 pointed out on this scheme (2); I would also say that this approach requires a careful planning, including planning ahead for future additions. Else, your program would end up as a labyrinth of modes, which are poorly isolated from, and/or wildly inconsistent with each other.
TanteiSakana:Does anyone have a use case for keyboard shortcuts that are a sequence of keystrokes, like Emacs/Vi, in an art program? (As in, you could set a shortcut to be "alt+x v", which would only trigger the action if you pressed alt+x and then v.)
Believe it or not, most traditional desktop programs (including art programs) already even have these built-in.
Outside of text-mode realm, this hotkey-then-character approach is most commonly used for navigating window's menu bar with keyboard. So, if you decided to utilize this approach, to save users from nasty surprises, I would recommend you to:
- Limit the start combo for this kind of hotkeys to Alt+character
- Display a menu-like visual hint (3) when user is in the middle of the sequence to prevent confusion (and ensure discoverability of subcommands)
- In the visual hint, make sure that sequences which have further keys to press are distinguished properly (4)
- Make sure that pressing ESC at any point in the middle would cancel the entire hotkey sequence
- Consider using alphabet characters, especially when it coincides with name of the command/subcommand (avoid numbers or symbols, unless you know what you are doing)
- Avoiding other modifier keys in the mix, even when it was just Shift (Alt+I G is okay, but avoid Alt+I Shift+G, and definitely steer clear of Alt+I Ctrl+G)
- As a rule of thumb, subcommands should not be nested for more than 2 levels (Alt+I G F, is okay; Alt+I G F A, is likely too much) (5)
And, optionally: also display the menubar or main menu panel while Alt key is first held down.
- In text-mode Links: use Alt+F, followed by U to enter an URL to download. (Menu only displays in the middle of hotkey sequence)
- In GIMP: use Alt+C, followed by D to desaturate the picture.
- In Pale Moon: use Alt+F, followed by K to toggle offline mode.
- In lots of programs: use Alt+F, followed by A to save current document as a different file.
- In lots of programs: use Alt+H, followed by A to show program's About dialog.
^ In these real world examples, pressing ESC will also cancel the hotkey sequence. (And each character used for accessing subcommand is visibly highlighted/underlined in the menu)
(1) For the record; art programs are application software.
(2) It is nice (and hygienic) that I could fast-forward the timeshifted show playing in MPlayer, while using my other hand for snacks.
(3) It doesn't have to resemble a traditional window's top menubar; it can look like right-click context menus, or even full-screen OSD you found in older TV or VCR.
(4) Commonly represented by displaying right-pointing arrowhead at the right of that subcommand.
(5) The like of Linux SysRq safe-reset hotkey sequence is a prime example of what to avoid in applications that users use day to day. (The sequence is Alt+SysRq R E I S U B; which Alt+SysRq must be held down for the entire time)
^ Before someone argue that characters in this extreme example are, in fact, 6 separate commands; the most occasions that you are ever going use these, is as a part of this exact sequence.