Is there a keyboard shortcut paradigm?

I’m guessing the keyboard shortcuts are an often debated topic, but this is something I haven’t read about yet. I was curious if there is some sort of internal guideline on what to assign a shortcut to and which shortcut it has to be.

For example, intuitively, I personally always associate shift, alt and control with additive, subtractive and precise actions respectively. Of course not all actions fit in this mold, and likely not any single other frame we can think of. But it might help new users if we could arrange our shortcuts more logically.

I know there has been much work done on this since the old days, especially with 2.8. In Blender’s current state, while fairly decent, I still bump into illogical or inconsistent shortcuts.

1 Like

This really needs to be talked about. I thought on this topic a lot of times since I started using Blender years ago. I came to a conclusion that if there is such a paradigm, I would hope that two key principles are a part of it:

Ergonomics before mnemonics

Meaning, a shortcut’s key assignment shouldn’t be based on the name of the tool it calls, but rather on the ease of use of this shortcut. Undo doesn’t start with Z, but Ctrl+Z is an universally accepted undo shortcut because it’s used very often and very convenient to press. By the way, why is Ctrl+Alt+Z still not a shortcut for the undo history? Especially considering that it’s been very hard to figure out how to make a custom shortcut for undo history since it was moved to a drop-down menu.
A couple of examples of situations when this principle is not followed in Blender:

  • Selecting axes in modals. Z, X, so far so good, and… Y, half a keyboard away. Why not change Y to C? Sure, this is an extrema example, because from the mnemonic point of view this would be an insane change that would confuse and anger a lot of people. The axes are literally called X, Y and Z, not X, C and Z. From the ergonomic point of view, however, that change would be a major improvement, because all the keys with a similar function are now conveniently grouped together. The convenience is even more obvious if we consider the Shift+axis shortcuts. Shift+Y, while not as commonly used as Shift+X and Shift+Z, is extremely awkward to press. In touch typing, you re supposed to press shift with your left pinky and Y with your right index finger. But your right index finger is on the mouse. Shift+C is extremely convenient to press. Such things should be considered when designing the Blender’s shortcut layout.
  • Another very important example to consider in this regard is the G key. If I had to guess what key is the most often pressed by a typical Blender user, I would say the Shift key because it is used for basic navigation around the scene as well as in a lot of shortcuts. G would certainly be among the most used keys because it is used to move things around. The most basic and commonly used of all the operations. Tab is another one, A to select/deselect things, X to delete things, Z for wireframe and undo, S to scale, R to rotate, E to extrude. Those keys should work well together. But G is too far away from Shift and the rest of the keys. You should be able to press all of them without ever moving your left hand or even maybe most of your fingers from their default resting positions. But what is the default position for the left hand? Easy answer: the WASD. Are there many new Blender users without any kind of gamer’s background? It is not the touch-typing position because you have to keep your pinky on Shift because you press it all the time. The index finger is the strongest finger, it’s default position is the D key. The D key is used to draw grease pencil annotations. How often do you do that compared to how often you move things around? What else does the D key do? Shift+D duplicates an object and moves it. Alt+D makes and instance and moves it. Logically, considering all the above, just D should be used to move things. D for DRAG. G should be for Grease pencil. Move, Scale and Rotate would finally be nicely grouped together. This change will never come, however, because it would cause a storm of outrage from the old Blender users. G for Grab is our holy tenet, established by our forefathers and should not be blasphemed against. Which brings us to the second key principle:

New users before old users

We should consider the convenience of the new users before the habits of the old users when designing the shortcuts. Old habits die hard. People will bring their habits from other software as well. It’s baffling, but I can still feel some Vim DNA in the Blender control scheme. X for delete, I wonder where it came from? It’s an absolutely great shortcut from the ergonomics point of view, compared to the Delete key a lot of other programs use, but it’s not hard to trace its origins. A programmer made this shortcut eons ago because they were using Vim and X for delete is what they were used to.

Old users, like myself, will likely have their own custom layouts and they will keep using them. A lot of people still use the 2.79-based layouts and right click select. Hence, any discontent of the changes of the shortcut layout from the old users should be dismissed as irrelevant. The improvement of the Blender’s UX and the convenience of the new users should come first. Some might argue that it’s a bad Idea to change the default shortcuts too often because it would be confusing for everyone. There has been a lot of moving things around in Blender’s UI since 2.79, there’s been a lot of “where the hell did they move xxxx to? I can’t find nothing in this terrible new UI anymore”. But all the changes gradually and steadily have been making working with Blender a better experience for everyone. Key shortcuts are a part of the UI. They should also be evolving and ever improving.

That is not true. I have my hands on the keyboard in the touch typing position and reaching shift and g is easy. The same is true for the y-key. Keyboards were designed for the touch typing position not for the wasd position.
I think the touch typing position is the better hand position compared to wasd because you can reach more buttons that way and you get the little hump on the f key to easily feel where your hand is without having to look at the keyboard.

That said, moving things like axis constraints into a common cluster for ergonomic reasons like you suggest with zxc would be very useful imo.

Great thinking, thank you!

Some problems I see:

  • not accommodating azerty and qwertz
  • not accommodating left handed people
  • can’t scrunch all shortcuts into the left side of the keyboard for the sake of it
  • mnemonics are a very powerful technique for learning, so it’s still a great on-ramp to learning Blender in general.

Factor in being left handed AND a Wacom user I find a lot of the short cuts and common actions undesirable. From my perspective, Blender is not made for lefties. :slight_smile:

1 Like