I gathered some notes after testing an “Active Tools” only workflow with a custom keymap directly mapped to the Tools instead of the current modal operator shortcuts.
I did this with both LMB & RMB select.
Also this thread is specifically about accessing Tools & Modal Operators via the keymap and not via the Toolbar or the header menus. This is about comparing them when using them efficiently.
I won’t talk about the Industry Compatible Keymap since there the Tools are far better integrated already.
Also my feedback is way more on a user level than on the development side, so I’m not sure how easy some suggested fixes might be.
I believe that the Tools could in a way replace the current modal operator centric keymap or at least be presented as an option in the keymap preferences.
But if the Active Tools are meant to surpass the modal operators in clearly, efficiency & functionality then there are still some problems I noticed with the Tools system.
Generally Active Tools have the issue that they only allow to chagne settings via shortcuts while the operation has been started by click & draging on a gizmo or 3D space.
Being able to adjust settings with shortcuts and mouse wheel inputs can be faster than clicking through settings in the Tool Settings.
This is not a big issue for most Tools since the modal operators are the same as executing a Tool, so the shortcuts are still accessible that way.
But a good example where the issue is most noticeable is with the Circle Select Radius
& Number of Segments for Loop Cuts.
There need to be an object-mode-universal shortcut for changing a Tool/Brush radius or number of cuts The best way to solve it that I can see is to re-shuffle specific parts of the keymap so that F or alternatively another key like or C is always changing the radius or number of cuts.
Or it could behave similarly to Brushes in other modes, where the keymap changes slightly based on the Tool that is used.
Alternatively and less ideally we could provide Tool Settings in the RMB context menu like in the painting/sculpting modes.
Tools are sometimes way more specific and less contextual than the modal operators
G for grab, Gx2 to slide either vertices or edges VS 3 different Tools with potentially different shortcuts for each (Move, Edge Slide, Vertex Slide).
This is not an issue when using the Move Tool and presing G while moving but this workflow is not communicated that well in the UI since the Edge/Vertex Slide Tools are separate in the Toolbar
Another example are the 4 Annotation Tools & 4 Extrusion Tools
If the proper way of using Blender is with a keyboard then the Tool behaviour could be more flexible by using more shortcuts or at least modifier keys.
The Annotation Tools could be merged into one and the Ctrl & Alt keys can be used for straight or polygon lines. The alternative is changing the behaviour in the Tool Settings.
Same workflow for Extrusion Tools.
Some Tools are still lacking some functionality over the Modal Operators.
An example I found was that when extruding the selection there is no way of specifying if only individual edges or vertices should be extruded.
This is an option for the modal operators in the Alt + E menu.
This functionality could be added to the “Extrude Individual” Tool by making it contextual on the current selection type if it extrudes individual faces, edges or vertices.
It is slow to switch between selection & action for LMB. This has to be done either in the Tool Settings or the Alt + W pie menu.
Alternative: Reliance on gizmos, which might be out of view or aligned badly.
Implementing the planned Alt+LMB drag behaviour to use the Tool instead of selection would fix this.
Drag Thresholds are preventing fine tweaking. In the Left Click Select keymap a drag threshold is added for both clicking on Gizmos or clicking outside of Gizmos.
In the IC Keymaps this also the case but only really needs to happen when clicking directly on Gizmos since MMB is used outside of Gizmos.
In RMB select this happens too but only because LMB is always to set the 3D cursor
This seems to be an unsolvable downside to the Tools for the current LMB select keymap even if the pixel values get adjusted slightly.
One suggestion that can make the drag threshold less furstrating is to prevent the “jumping” that it causes. If you use the Tweak Tool and drag a vertex, it will not move until you reach the drag threshold and then it will jump to your current mouse position.
A way better alternative behaviour is to start moving the vertex after the drag threshold is reached completely independent of the mouse position (Like when dragging a Gizmo)
It’s not a solution but it is an improvement.
Fortunately this issue can be solved in the Right Click Select and the IC keymap.
I’ll explain more about how below but for the IC keymap the drag threshold on Gizmos is unnecessary since there is no conflict that it solves.
Adjustments to an Operation “During” or “After” does not update the Tool Settings
Tool Settings for an action can be freely changed in the Top- or Sidebar and they will be remembered for the next action.
But when changing these settings with the “Adjust Last Operation” options after an action via F9 or with the popup on the side, the Tool Settings are not being updated.
The same is the case for changing the operation with shortcuts and mouse wheel inputs while executing it.
No matter where the Settings of an operation are changed the Tool Settings could be updated to reflect that.
But some users might object with that change.
So alternatively if Adjusting the operation afterwards should be held separate from that, the setting changes during the operation could be at least kept in sync with the Tool Settings.
Another big issue for some Tools right now is that the Gizmo overlay is not running or is not representative of the current settings.
Examples for this are the Knife Tool that won’t show the cutting points & snapping before the you execute the Tool by clicking or the Loop Cut Tool that will not show the correct amount of cuts based on the settings.
The developers know of course more about the technical problems of making this work but there needs to be at least a correct preview of the Tool Gizmo running while the Tool is active.
Some Tools like the Spin Tool benefit extremely from “Adjust Last Operation Gizmos” that let you change the most recent operation further.
This can be a great alternative to using shortcuts or the Adjust Last Operation popup to tweak what you are doing.
These Gizmos should be implemented for way more Tools like Bevel, Loop Cut, Inset, etc.
When using Active Tools, only one hand is available for keyboard typing.
Since Active Tools are always executed with a Drag Action, typing in numbers and shortcuts can be slower since one hand must be used to hold the Drag.
Modal operators on the other hand are normally executed with a shortcut which leaves both hands free during the operation.
Campbell made an experimental patch (Blender Archive - developer.blender.org) and one idea that spawned from it is to press pace while executing a tool. Afterwards LMB no longer needs to be held and both hands are free to type in any input.
Of course there are many advantages to the Tools where they already surpass the classic modal operators. These are the most important in my opinion.
- Easier to find and understand & no reliance on hidden shortcuts or finding modal operators in the header menus (Toolbar & Tool Settings)
- No reliance on shortcut-settings via long info text at the status bar
- Gizmos with better visualisation before performing the action (Spin, Shear)
- Even without using Gizmos, they are a helpful visualisation of the currently used orientation
- Tools stays active after each action = No repeated pressing of the same shortcut or holding of a key (Annotate, Extrude)
- Able to still navigate while Tool is active (Paint Select, Loop Cut)
- Click & Dragging anywhere can also perform the Tool action or any selection method
And to counter this, together with some points mentioned above, the inherent disadvantages of using Active Tools over Modal Operators:
- Drag Thresholds seem unavoidable in LMB Select and partly for the IC Keymap
- A keyboard workflow of typing in axes, options and values is slowed down
- Specific Tools are too noisy to keep active or are blocking the view with Gizmos (Loop Cut, Shear)
Of course you can be the judge if these are really unavoidable issues or if they can be addressed somehow.
Right now the Active Tool implementation of RMB select seems a bit left behind.
There are features specifically designed for LMB select like drag threshold for tool actions, selection tools and selection fallback actions for tools.
But these don’t make sense when having RMB for selection.
Here are my suggestions:
Selection Tools should be implemented differently and used with RMB
Right now RMB drag is always Tweak.
Many artists I know find and kill the tweak action in their keymap.
Being able to switch the behaviour to box/lasso select would be a big improvement over swithing the LMB behaviour to box or lasso selection.
There’s a big reliance on the old lasso, circle & box select operators right now.
These have inconsistent and lacking shortcuts and big limitations like no navigation while using them & no lasso select through gizmos (because it’s Ctrl + LMB).
Selecting with both LMB & RMB is very inefficient and strange if users chose to use the Tools anyway.
Possibly implementing and changing the RMB drag selection method via the drag fallback tool-setting like in LMB select would be ideal.
With Alt + W RMB select users can then quickly change the selection method.
One drawback from this is that a selection by clicking (not dragging) can only be executed on release instead of when pressing. This is to avoid conflict with the drag actions but IMO it’s only a very minor issue and is easy to get used to.
This change already got introduced to LMB select a while ago and it caused no real issues.
LMB click is always setting the 3D cursor position. IMO this is going against what the Tools aimed to achieve, which is changing the behaviour of what action LMB is performing.
The Cursor Tool becomes arbitrary this way since the cursor can always be set via LMB click.
LMB drag actions will always have a drag threshold, which is a big inconvenience.
This also makes it impossible to set the Cursor in Sculpt Mode to define the gizmo pivot but to be honest, this feature needs a better implementation anyway.
Assigning a modifier key to this action like in LMB select keymap could fix the issue.
Alt LMB click & drag on empty space is generally not used for any Tools.
Ideally Shift would be a better fit but some Tools like the Polybuild Tool are already using Shift + LMB and Shift Clicking on some handles of a Gizmo are used.
Additionally it would be ideal to add a “transform.translate” keymap item to move the 3D cursor around with Alt + LMB Tweak (Click & Drag).
This makes the 3D Cursor placement a lot easier without having to change the Active Tool to the Cursor Tool.
To be able to set the 3D cursor through gizmos, like the very big rotate gizmo, the Gizmo Tweak keymap items should not be set to “Any”. This way gizmos are generally only used without holding down modifier keys.
In the LMB Select keymap there is no issue of setting the 3D Cursor location through a Gizmo since the shortcut Shift + RMB doesn’t conflict with activating the Tool.
But on RMB Select since the 3D Cursor is tied to LMB there is not way of setting it through a Gizmo, which can be an issue for example with the Rotate Tool Gizmo which is taking up a big sphere that is then blocking the 3D cursor from being changed.
Excluding the input Alt LMB from activating the Gizmo would be a good way of fixing this. The shortcut combination is not used to access the Gizmo in any special way anyway and users would just LMB click on it like before.
That’s all. let me know what you think.
I’ll keep adding notes and thoughts to the list as I am testing the Tools and keymaps.
An interesting side note from my tests is that I was a firm believer that the LMB Select keymap is the most ideal for pen users since selecting with RMB is awkward & imprecise when using a pen.
But after comparing and adjusting the keymaps I think RMB Select is the most superior keymap for mouse & pen since Tools & Selections can be well supported and Drag Thresholds can be removed.
Let’s see how my opinion might still change over time.