Proposal: Invoke gizmos with hotkeys / Consistency between gizmos and keyboard modal operations
Problem
Currently there is disconnecting functionality between modal operations with keyboard shortcuts and gizmos. When using gizmos the user is prompted with standard object operators (x to delete object) until actively using a gizmo handle. Using shortcuts gives users transform operators (axis constraints) but no gizmo visual indicators. A quick example of the lack of consistency:
What I expect when pressing x in a rotation gizmo or
r -> x
hotkey:
What I get with
gizmo -> x
:
What I get with
r -> x
hotkey:
Question for clarification
Is there a reason why the hot keys don't invoke the gizmo operators by default?
Proposal
If there is no dramatic reason for the keyboard commands (
r / s/ g
) to not invoke gizmo operators (vs
toolmenu-> r / s / g
) I would suggest looking into it since it will create cohesion between the interface and make gizmos seem more at home.
To help with that I suggest giving gizmos two modes:
- * lazy mode *: Invoke the gizmo and wait for input. Exit on escape command
- * Immediate mode *: Invoke the gizmo and immediately for screenspace manipulations
- * Both modes *: Can toggle between lazy and immediate and have the same modal operations (axis constraints for instance)
The last issue about toggling between lazy and immediate is so that a user can press g then keep the gizmo around (
toolmenu -> g
functionality) and possibly escape through
esc
or other command or toggle back to immediate mode, make a final adjustment which then escapes the gizmo. This would work the same when selecting the toolmenu.
IF invoking gizmos is somehow very hard to implement at the very least we should have indicators shown on hotkey use and give gizmo hotkey axis constraints.
Reason
I've noticed new users coming from other software love the gizmos for onscreen adjustments. The more I use 2.8+ the more I realize the value of using gizmos in my workflow but can't justify the speed. I believe having keyboard shortcuts to invoke gizmos would alleviate the stigma of BOTH keyboard commands/gizmo and provide a sense of consistency in the user interface.
7 Comments
It's a good idea. I've setup this, when i press R, rotation gizmo is activated and rotate operation is invoked at the same time, if i only want the gizmo i right click to cancel the operation. Works fine.
* @yasharjk * plz share more information about your setup
* @impacman * I guess i misunderstood the topic and go off topic. If that's the case, i'm sorry for off topic posting...
The easiest way is to set move, rotate and scale keymaps value to "RELEASE", add keymaps for the tools and set the value to "PRESS" which is the default value.
This way one keymap can be use for two operations.
At the end of View 3D keymaps there is a "Set Tool by Name" keymap for box select tool, you can copy and use that for other tools.
Also can be done by writing a custom operator in python which first activate the tool then invoke the op... {attachment Invoke-Tool-and-Opjpg}
* @yasharjk * thank you for such a cool trick!
* @impacman * Glad you liked it :D
Denis, I couldn't agree with you more. Thankfully, there is a new (free) add-on that solves this exact problem, and it does so rather elegantly as well: blendermarket.com/products/gizmodal-ops
Agree. If I am dragging gizmo, additional shortcut should be contextual