Remove/Update "Emulate Middle Mouse" preference #69323

Open
opened 2019-08-30 09:10:08 +02:00 by Campbell Barton · 75 comments

This task is to check if it is reasonable to remove the emulate middle mouse option.

Blender 2.7x didn't allow left-click-select and emulate middle mouse to be enabled at once, this never worked - it's just that in 2.8x we allow both options to be enabled at once with key-conflicts.

Since I don't use a touch-pad on macOS / ms-windows, I'm not sure how common it is that middle-click gestures are enabled without having to manually configure it.

Are there systems where using a middle-click still isn't practical?

Options could be:

  • Remove this preference.

  • Remove the keys that use Alt-LMB (means re-working the keymap in some places).

  • Use an alternative shortcut that doesn't conflict, eg: OSKey (Cmd / Super / Windows-Key).

    (By default this conflicts on Linux with many window-managers, these would need to be re-configured not to use Super-LMB).

Unless this is given some attention it's likely Alt-LMB will be used more, to the point Emulate-Middle-Mouse preference isn't useful and we'll need to remove or document all it's known limitations and accept Blender isn't fully usable with this enabled.


There are currently conflicts using with emulate middle mouse

  • Number Button Alt-Drag to change all other selected items #69053 (Emulate 3 Buttons doesn't work with ALT Modifier key on UI buttons)
  • Edit-Mesh: Edge-ring de-select isn't possible.
  • Alt-MMB-drag to change views.
  • Un-clamped vertex slide can't be confirmed.
  • Grease Pencil, Circle Primitive
  • Weight Paint Gradient
  • Loop select (Worked around with double-click, but not very convenient since selecting boundaries requires quad-click).

Here is a full list of potential conflicts in the default keymap.

Are we serious about resolving these or would it be better to drop this option?


From a search of the code:

cat release/scripts/presets/keyconfig/keymap_data/blender_default.py | \
    pcregrep "(LEFTMOUSE|TWEAK_L|params.select_mouse|params.action_tweak|params.action_mouse).*alt\":"
        ("uv.select_loop", {"type": params.select_mouse, "value": params.select_mouse_value, "alt": True},
        ("uv.select_loop", {"type": params.select_mouse, "value": params.select_mouse_value, "shift": True, "alt": True},
        ("uv.select_edge_ring", {"type": params.select_mouse, "value": params.select_mouse_value, "ctrl": True, "alt": True},
        ("uv.select_edge_ring", {"type": params.select_mouse, "value": params.select_mouse_value, "ctrl": True, "shift": True, "alt": True},
            ("uv.select_loop", {"type": params.select_mouse, "value": 'DOUBLE_CLICK', "alt": True},
        ("mask.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True},
        ("mask.select_lasso", {"type": params.action_tweak, "value": 'ANY', "shift": True, "ctrl": True, "alt": True},
        ("graph.clickselect", {"type": params.select_mouse, "value": 'PRESS', "alt": True},
        ("graph.clickselect", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "alt": True},
        ("graph.clickselect", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True, "alt": True},
        ("graph.clickselect", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
        ("node.select_lasso", {"type": 'EVT_TWEAK_L', "value": 'ANY', "ctrl": True, "alt": True},
        ("node.select_lasso", {"type": 'EVT_TWEAK_L', "value": 'ANY', "shift": True, "ctrl": True, "alt": True},
        ("node.backimage_sample", {"type": params.action_mouse, "value": 'PRESS', "alt": True}, None),
        ("node.move_detach_links_release", {"type": params.action_tweak, "value": 'ANY', "alt": True}, None),
        ("action.clickselect", {"type": params.select_mouse, "value": 'PRESS', "alt": True},
        ("action.clickselect", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "alt": True},
        ("action.clickselect", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True, "alt": True},
        ("action.clickselect", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
        ("sequencer.select", {"type": params.select_mouse, "value": 'PRESS', "alt": True},
        ("sequencer.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "alt": True},
        ("clip.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True},
        ("clip.select_lasso", {"type": params.action_tweak, "value": 'ANY', "shift": True, "ctrl": True, "alt": True},
        ("gpencil.annotate", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True, "key_modifier": 'D'},
        ("gpencil.annotate", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "alt": True, "key_modifier": 'D'},
        ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True},
        ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "shift": True, "ctrl": True, "alt": True},
        ("gpencil.select", {"type": params.select_mouse, "value": params.select_mouse_value, "alt": True},
        ("gpencil.select", {"type": params.select_mouse, "value": params.select_mouse_value, "shift": True, "alt": True},
        ("gpencil.draw", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True},
        ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None),
        ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None),
        ("gpencil.draw", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True},
        ("paint.weight_gradient", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True},
        ("paint.weight_gradient", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
        ("mesh.loop_select", {"type": params.select_mouse, "value": params.select_mouse_value, "alt": True},
        ("mesh.loop_select", {"type": params.select_mouse, "value": params.select_mouse_value, "shift": True, "alt": True},
        ("mesh.edgering_select", {"type": params.select_mouse, "value": params.select_mouse_value, "ctrl": True, "alt": True},
        ("mesh.edgering_select", {"type": params.select_mouse, "value": params.select_mouse_value, "shift": True, "ctrl": True, "alt": True},
            ("mesh.loop_select", {"type": params.select_mouse, "value": 'DOUBLE_CLICK', "alt": True},
            ("gpencil.primitive_line", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True},
            ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None),
            ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None),
            ("gpencil.primitive_box", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True},
            ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None),
            ("gpencil.primitive_circle", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True},
            ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None),
            ("gpencil.primitive_curve", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True},
            ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None),
            ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None),
            ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None),
This task is to check if it is reasonable to remove the emulate middle mouse option. Blender 2.7x didn't allow left-click-select and emulate middle mouse to be enabled at once, this never worked - it's just that in 2.8x we allow both options to be enabled at once with key-conflicts. Since I don't use a touch-pad on macOS / ms-windows, I'm not sure how common it is that middle-click gestures are enabled without having to manually configure it. Are there systems where using a middle-click still isn't practical? Options could be: - Remove this preference. - Remove the keys that use Alt-LMB *(means re-working the keymap in some places)*. - Use an alternative shortcut that doesn't conflict, eg: OSKey (Cmd / Super / Windows-Key). *(By default this conflicts on Linux with many window-managers, these would need to be re-configured not to use Super-LMB).* Unless this is given some attention it's likely Alt-LMB will be used more, to the point Emulate-Middle-Mouse preference isn't useful and we'll need to remove or document all it's known limitations and accept Blender isn't fully usable with this enabled. ---- There are currently conflicts using with emulate middle mouse - Number Button Alt-Drag to change all other selected items #69053 (Emulate 3 Buttons doesn't work with ALT Modifier key on UI buttons) - Edit-Mesh: Edge-ring de-select isn't possible. - Alt-MMB-drag to change views. - Un-clamped vertex slide can't be confirmed. - Grease Pencil, Circle Primitive - Weight Paint Gradient - Loop select *(Worked around with double-click, but not very convenient since selecting boundaries requires quad-click).* Here is a full list of potential conflicts in the default keymap. Are we serious about resolving these or would it be better to drop this option? ---- From a search of the code: ``` cat release/scripts/presets/keyconfig/keymap_data/blender_default.py | \ pcregrep "(LEFTMOUSE|TWEAK_L|params.select_mouse|params.action_tweak|params.action_mouse).*alt\":" ``` ``` ("uv.select_loop", {"type": params.select_mouse, "value": params.select_mouse_value, "alt": True}, ("uv.select_loop", {"type": params.select_mouse, "value": params.select_mouse_value, "shift": True, "alt": True}, ("uv.select_edge_ring", {"type": params.select_mouse, "value": params.select_mouse_value, "ctrl": True, "alt": True}, ("uv.select_edge_ring", {"type": params.select_mouse, "value": params.select_mouse_value, "ctrl": True, "shift": True, "alt": True}, ("uv.select_loop", {"type": params.select_mouse, "value": 'DOUBLE_CLICK', "alt": True}, ("mask.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, ("mask.select_lasso", {"type": params.action_tweak, "value": 'ANY', "shift": True, "ctrl": True, "alt": True}, ("graph.clickselect", {"type": params.select_mouse, "value": 'PRESS', "alt": True}, ("graph.clickselect", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "alt": True}, ("graph.clickselect", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True, "alt": True}, ("graph.clickselect", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, ("node.select_lasso", {"type": 'EVT_TWEAK_L', "value": 'ANY', "ctrl": True, "alt": True}, ("node.select_lasso", {"type": 'EVT_TWEAK_L', "value": 'ANY', "shift": True, "ctrl": True, "alt": True}, ("node.backimage_sample", {"type": params.action_mouse, "value": 'PRESS', "alt": True}, None), ("node.move_detach_links_release", {"type": params.action_tweak, "value": 'ANY', "alt": True}, None), ("action.clickselect", {"type": params.select_mouse, "value": 'PRESS', "alt": True}, ("action.clickselect", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "alt": True}, ("action.clickselect", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True, "alt": True}, ("action.clickselect", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, ("sequencer.select", {"type": params.select_mouse, "value": 'PRESS', "alt": True}, ("sequencer.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "alt": True}, ("clip.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, ("clip.select_lasso", {"type": params.action_tweak, "value": 'ANY', "shift": True, "ctrl": True, "alt": True}, ("gpencil.annotate", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True, "key_modifier": 'D'}, ("gpencil.annotate", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "alt": True, "key_modifier": 'D'}, ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "shift": True, "ctrl": True, "alt": True}, ("gpencil.select", {"type": params.select_mouse, "value": params.select_mouse_value, "alt": True}, ("gpencil.select", {"type": params.select_mouse, "value": params.select_mouse_value, "shift": True, "alt": True}, ("gpencil.draw", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True}, ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None), ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None), ("gpencil.draw", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True}, ("paint.weight_gradient", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True}, ("paint.weight_gradient", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True}, ("mesh.loop_select", {"type": params.select_mouse, "value": params.select_mouse_value, "alt": True}, ("mesh.loop_select", {"type": params.select_mouse, "value": params.select_mouse_value, "shift": True, "alt": True}, ("mesh.edgering_select", {"type": params.select_mouse, "value": params.select_mouse_value, "ctrl": True, "alt": True}, ("mesh.edgering_select", {"type": params.select_mouse, "value": params.select_mouse_value, "shift": True, "ctrl": True, "alt": True}, ("mesh.loop_select", {"type": params.select_mouse, "value": 'DOUBLE_CLICK', "alt": True}, ("gpencil.primitive_line", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True}, ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None), ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None), ("gpencil.primitive_box", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True}, ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None), ("gpencil.primitive_circle", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True}, ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None), ("gpencil.primitive_curve", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True}, ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None), ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None), ("gpencil.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, None), ```
Campbell Barton self-assigned this 2019-08-30 09:10:08 +02:00
Author
Owner

Added subscriber: @ideasman42

Added subscriber: @ideasman42

#68582 was marked as duplicate of this issue

#68582 was marked as duplicate of this issue

Added subscriber: @sebastian_k

Added subscriber: @sebastian_k

Maybe I am not quite sure I understand correctly, but everytime I travel, teach or use Blender somwhere else on the road, I am doing that on a MacBookPro, and I always use the EmulateMiddleMouseButton there. I would be completely lost without it.

Maybe I am not quite sure I understand correctly, but everytime I travel, teach or use Blender somwhere else on the road, I am doing that on a MacBookPro, and I always use the EmulateMiddleMouseButton there. I would be completely lost without it.

Added subscriber: @capnm

Added subscriber: @capnm

I know that some users use this option because (cheap, old?) devices need a lot more pressure on the MMB scroll wheel.
Personally, I would prefer to remove this option because it causes many issues. Using a suitable external device is, in my opinion, in the end less painful.

For example, in the 3D view, it also breaks the currently free Ctrl-Alt-LMB that I use for viewport-roll.
And there is no reasonable way to fix that: https://developer.blender.org/T31392#765200

I know that some users use this option because (cheap, old?) devices need a lot more pressure on the MMB scroll wheel. Personally, I would prefer to remove this option because it causes many issues. Using a suitable external device is, in my opinion, in the end less painful. For example, in the 3D view, it also breaks the currently free Ctrl-Alt-LMB that I use for viewport-roll. And there is no reasonable way to fix that: https://developer.blender.org/T31392#765200

Added subscriber: @nokipaike

Added subscriber: @nokipaike

I on windows that on linux I have always used emulate middle mouse button both with the touchpad and with the tablet pen, and I use the combinations
alt + left click = rotate view
alt + ctrl + left click = zoom view
alt + shift + left click = pan view
alt + left click for scrolling in the ourliner and panels ...

for me these functions are essential, the rest I can't say ..

I on windows that on linux I have always used emulate middle mouse button both with the touchpad and with the tablet pen, and I use the combinations alt + left click = rotate view alt + ctrl + left click = zoom view alt + shift + left click = pan view alt + left click for scrolling in the ourliner and panels ... for me these functions are essential, the rest I can't say ..

Added subscriber: @brecht

Added subscriber: @brecht

For trackpad and pen tablet usage I think this option is still important.

I don't think we can rely on middle mouse click being available. For pen tablets right mouse click is already more limited in what you can do efficiently, nevermind middle mouse click.

For trackpad and pen tablet usage I think this option is still important. I don't think we can rely on middle mouse click being available. For pen tablets right mouse click is already more limited in what you can do efficiently, nevermind middle mouse click.

Added subscriber: @ThatAsherGuy

Added subscriber: @ThatAsherGuy

I've had a good experience using Spacebar as an MMB stand-in on laptops, re-mapping the standard actions (search, play animation, maximize area, etc) to double-click and using click-drag for rotating the viewport. I like enough that I use a similar keymap layering system on my desktop, as it lets me use Spacebar as a modifier key for LMB and RMB, too.

I've had a good experience using Spacebar as an MMB stand-in on laptops, re-mapping the standard actions (search, play animation, maximize area, etc) to double-click and using click-drag for rotating the viewport. I like enough that I use a similar keymap layering system on my desktop, as it lets me use Spacebar as a modifier key for LMB and RMB, too.

Added subscriber: @bent

Added subscriber: @bent

I have a fully functional middle mouse button and often use this, because it's imo more comfortable. I'm on rightclick select though

I have a fully functional middle mouse button and often use this, because it's imo more comfortable. I'm on rightclick select though

Added subscriber: @WilliamReynish

Added subscriber: @WilliamReynish

I use this option with all my devices - most modern mice don't have a real MMB, but a scroll wheel, which is really not very nice to press.

Grease Pencil, Circle Primitive

We have a tool for this

Weight Paint Gradient

We have a tool for this

Loop select (Worked around with double-click, but not very convenient since selecting boundaries requires quad-click).

We have a workaround as you say.

I use this option with all my devices - most modern mice don't have a real MMB, but a scroll wheel, which is really not very nice to press. >Grease Pencil, Circle Primitive We have a tool for this > Weight Paint Gradient We have a tool for this >Loop select (Worked around with double-click, but not very convenient since selecting boundaries requires quad-click). We have a workaround as you say.
Author
Owner

Having a tool for a feature isn't a great excuse for allowing conflicts, if someone is following a tutorial or a set of steps, they might not be able to perform the same steps.

You don't have to look far in the larger list of bindings to find issues that can't be worked around.

For example, with emulate-mmb, it's impossible to edge-ring-deselect with LMB-select, or lasso-select mask/clips with RMB-select.

Sequencer linked-select options also don't seem to have an alternative.

Having a tool for a feature isn't a great excuse for allowing conflicts, if someone is following a tutorial or a set of steps, they might not be able to perform the same steps. You don't have to look far in the larger list of bindings to find issues that can't be worked around. For example, with emulate-mmb, it's impossible to edge-ring-deselect with LMB-select, or lasso-select mask/clips with RMB-select. Sequencer linked-select options also don't seem to have an alternative.

the logic wants blender should be totally functional with two buttons, and the third-middle button should be optional for those who "use them - enable them"

  • All the devices have 2 buttons
  • 3 buttons only some mouse
the logic wants blender should be totally functional with two buttons, and the third-middle button should be optional for those who "use them - enable them" - All the devices have 2 buttons - 3 buttons only some mouse

If the goal is to minimize the keymap impact, we could swap the right-click menus from press to click, use right tweak for panning, and set the modifier keys to swap between Move/Rotate/Zoom within the modals. We'd have to adjust the stencil controls for painting and sculpting, but we should be able to nudge things around and use Ctrl+Shift and Ctrl+Alt+Shift for displaced functions. It feels pretty smooth when you're using a tablet, with or without Confirm on Release.

If the goal is to minimize the keymap impact, we could swap the right-click menus from press to click, use right tweak for panning, and set the modifier keys to swap between Move/Rotate/Zoom within the modals. We'd have to adjust the stencil controls for painting and sculpting, but we should be able to nudge things around and use Ctrl+Shift and Ctrl+Alt+Shift for displaced functions. It feels pretty smooth when you're using a tablet, with or without Confirm on Release.

Added subscriber: @JohnGDDR5

Added subscriber: @JohnGDDR5

Why not add an more key options to emulate Middle Mouse Button, such as using the "Fn" button for laptop users? Possibly with a dropdown of keys?

I think that the problem of using "Alt" and "Left Mouse" click will always be there, but it is better to have the option for users without a mouse, which my guess is probably many laptop users. There should be a warning on the option that informs the user that there may be keymap conflicts by using the option.

Why not add an more key options to emulate Middle Mouse Button, such as using the "Fn" button for laptop users? Possibly with a dropdown of keys? I think that the problem of using "Alt" and "Left Mouse" click will always be there, but it is better to have the option for users without a mouse, which my guess is probably many laptop users. There should be a warning on the option that informs the user that there may be keymap conflicts by using the option.

Added subscriber: @NahuelBelich

Added subscriber: @NahuelBelich

Not only laptop users benefit from middle mouse emulation, the first time i use blender with that option and a tablet it worked great, that was one of those things that remove presasure from my right hand, not need to claw a finger to keep a middle mouse pushed was great and it still is today i basically only work with table mouse its only for games at this point.
If you are wondering about how do i select without doing a claw with my index or middle finger, i use right click with the side of my thumb (on the pen) or usually ctrl+left click (pen tip) to lasso select
Emulate 3 mouse button its not a default option, shouldn't actually be a problem if some noob its following a tutorial, becaouse probably never new that the option existed in the first place.
By the way alt+changing a parameter also doesn't work properly, i really don't care about that shortcut just use contextual menu>copy to selected, just mentioned if you wanted to added to the list.

Not only laptop users benefit from middle mouse emulation, the first time i use blender with that option and a tablet it worked great, that was one of those things that remove presasure from my right hand, not need to claw a finger to keep a middle mouse pushed was great and it still is today i basically only work with table mouse its only for games at this point. If you are wondering about how do i select without doing a claw with my index or middle finger, i use right click with the side of my thumb (on the pen) or usually ctrl+left click (pen tip) to lasso select Emulate 3 mouse button its not a default option, shouldn't actually be a problem if some noob its following a tutorial, becaouse probably never new that the option existed in the first place. By the way alt+changing a parameter also doesn't work properly, i really don't care about that shortcut just use contextual menu>copy to selected, just mentioned if you wanted to added to the list.
Author
Owner

In #69323#765944, @ThatAsherGuy wrote:
I've had a good experience using Spacebar as an MMB stand-in on laptops, re-mapping the standard actions (search, play animation, maximize area, etc) to double-click and using click-drag for rotating the viewport. I like enough that I use a similar keymap layering system on my desktop, as it lets me use Spacebar as a modifier key for LMB and RMB, too.

While I didn't try this - I have tried different kinds of input, in general they can work as a custom configuration, however I don't think it's reasonable to map mouse buttons to the keyboard entirely.


In #69323#766124, @JohnGDDR5 wrote:
Why not add an more key options to emulate Middle Mouse Button, such as using the "Fn" button for laptop users? Possibly with a dropdown of keys?

the Fn key isn't seen as a modifier, we can't use it.

While having the option to select between multiple keys can work - it means we can have multiple options that conflict in different paces - which would be better to avoid.


In #69323#766114, @ThatAsherGuy wrote:
If the goal is to minimize the keymap impact, we could swap the right-click menus from press to click, use right tweak for panning, and set the modifier keys to swap between Move/Rotate/Zoom within the modals. We'd have to adjust the stencil controls for painting and sculpting, but we should be able to nudge things around and use Ctrl+Shift and Ctrl+Alt+Shift for displaced functions. It feels pretty smooth when you're using a tablet, with or without Confirm on Release.

Differentiating RMB drag/click events work with Right-Click-Select. It's also likely to limit different kinds of interactions (during modal operators for example).

It can work for the 3D view but is unlikely to work well for event handling in general.

> In #69323#765944, @ThatAsherGuy wrote: > I've had a good experience using Spacebar as an MMB stand-in on laptops, re-mapping the standard actions (search, play animation, maximize area, etc) to double-click and using click-drag for rotating the viewport. I like enough that I use a similar keymap layering system on my desktop, as it lets me use Spacebar as a modifier key for LMB and RMB, too. While I didn't try this - I have tried different kinds of input, in general they can work as a custom configuration, however I don't think it's reasonable to map mouse buttons to the keyboard entirely. ---- > In #69323#766124, @JohnGDDR5 wrote: > Why not add an more key options to emulate Middle Mouse Button, such as using the "Fn" button for laptop users? Possibly with a dropdown of keys? the Fn key isn't seen as a modifier, we can't use it. While having the option to select between multiple keys can work - it means we can have multiple options that conflict in different paces - which would be better to avoid. ---- > In #69323#766114, @ThatAsherGuy wrote: > If the goal is to minimize the keymap impact, we could swap the right-click menus from press to click, use right tweak for panning, and set the modifier keys to swap between Move/Rotate/Zoom within the modals. We'd have to adjust the stencil controls for painting and sculpting, but we should be able to nudge things around and use Ctrl+Shift and Ctrl+Alt+Shift for displaced functions. It feels pretty smooth when you're using a tablet, with or without Confirm on Release. Differentiating RMB drag/click events work with Right-Click-Select. It's also likely to limit different kinds of interactions (during modal operators for example). It can work for the 3D view but is unlikely to work well for event handling in general.
Author
Owner

Since it seems there are enough devices that don't have access to MMB, we could use OSKey (Cmd/Super/Win) key, instead of Alt.

While we should continue to avoid using OSKey for other default bindings, an exception in this case would allow us to it for MMB-emulation without running into conflicts.

Pros:

  • Conflict free, MMB emulation can be fully supported without conflicts.
  • Simple to implement, can be used on all platforms.

Cons:

  • On Linux this is often used to move the window, although it can be configured not to.

  • On macOS it would mean you couldn't use Cmd for Ctrl when used with the mouse, this is a trade-off. All shortcuts can still be accessed because Ctrl can be used in those cases. This is already the case when Cmd use used by the window-manager.

Are there any other issues with this?

Since it seems there are enough devices that don't have access to MMB, we could use OSKey (Cmd/Super/Win) key, instead of Alt. While we should continue to avoid using OSKey for other default bindings, an exception in this case would allow us to it for MMB-emulation without running into conflicts. **Pros:** - Conflict free, MMB emulation can be fully supported without conflicts. - Simple to implement, can be used on all platforms. **Cons:** - On Linux this is often used to move the window, although it can be configured not to. - On macOS it would mean you couldn't use Cmd for Ctrl when used with the mouse, this is a trade-off. All shortcuts can still be accessed because Ctrl can be used in those cases. This is already the case when Cmd use used by the window-manager. Are there any other issues with this?

Added subscriber: @cedriclepiller

Added subscriber: @cedriclepiller

Emulate 3 Buttons doesn't work with ALT Modifier key on UI buttons

https://developer.blender.org/T69053

Emulate 3 Buttons doesn't work with ALT Modifier key on UI buttons https://developer.blender.org/T69053

Added subscriber: @jemian

Added subscriber: @jemian

I always use the emulate. I don't see the problem while a lot of 3D software works with these keys. It's much more convenient with a graphics tablet. When you have several years of practice and tendonitis full of arms you will understand why the emulate is so important. the navigational functions are used every second and it is very tiring for the right hand to do gymnastics on 3 buttons and the worst is probably the middle button. I don't see a more practical position for the left hand than the alt shift ctrl.

Translated with www.DeepL.com/Translator

I always use the emulate. I don't see the problem while a lot of 3D software works with these keys. It's much more convenient with a graphics tablet. When you have several years of practice and tendonitis full of arms you will understand why the emulate is so important. the navigational functions are used every second and it is very tiring for the right hand to do gymnastics on 3 buttons and the worst is probably the middle button. I don't see a more practical position for the left hand than the alt shift ctrl. Translated with www.DeepL.com/Translator

One of the mail uses of Emulate 3 Button Mouse is for graphics tablets where you actually often don’t have MMB at all, or even if you do, you cannot really use it for dragging. This makes removing this a non-starter, unless we provide a separate keymap especially for graphics tablets.

One of the mail uses of Emulate 3 Button Mouse is for graphics tablets where you actually often don’t have MMB at all, or even if you do, you cannot really use it for dragging. This makes removing this a non-starter, unless we provide a separate keymap especially for graphics tablets.
Author
Owner

As already stated:

In #69323#766281, @ideasman42 wrote:
Since it seems there are enough devices that don't have access to MMB, we could use OSKey (Cmd/Super/Win) key, instead of Alt.

Any feedback on this?

As already stated: > In #69323#766281, @ideasman42 wrote: > Since it seems there are enough devices that don't have access to MMB, we could use OSKey (Cmd/Super/Win) key, instead of Alt. Any feedback on this?

There is a problem I would like to point out, there are some stupid keyboards (especially on laptops) that have the key lock for the combination of keys that are not ctrl or alt or shift + mouse movement ....
for example if I hold down "A" and I move the mouse, this doesn't work (especially the touchpad) ...
So the combinations Alt or ctrl or shift are essential ...

Some keyboards block the touchpad if you press space ...
(combination widely used in 2d drawing programs)
Ad don't even allow the classic wasd that is used to play video games.
I know it's a very mangy thing ... but I wanted to make it clear that these problems exist.

Some stupid keyboards / touchpads don't even allow you to disable "this function."

There is a problem I would like to point out, there are some stupid keyboards (especially on laptops) that have the key lock for the combination of keys that are not ctrl or alt or shift + mouse movement .... for example if I hold down "A" and I move the mouse, this doesn't work (especially the touchpad) ... So the combinations Alt or ctrl or shift are essential ... Some keyboards block the touchpad if you press space ... (combination widely used in 2d drawing programs) Ad don't even allow the classic wasd that is used to play video games. I know it's a very mangy thing ... but I wanted to make it clear that these problems exist. Some stupid keyboards / touchpads don't even allow you to disable "this function."

Added subscriber: @AnadinX

Added subscriber: @AnadinX

In #69323#766340, @ideasman42 wrote:
As already stated:

In #69323#766281, @ideasman42 wrote:
Since it seems there are enough devices that don't have access to MMB, we could use OSKey (Cmd/Super/Win) key, instead of Alt.

Any feedback on this?

If I read your suggestion correctly this is only OSKey + mouse move? as I in it won't stop cmd+c, cmd+v etc. working - I think this is a good compromise - doesn't the OS Key open the start menu on Windows?

> In #69323#766340, @ideasman42 wrote: > As already stated: > >> In #69323#766281, @ideasman42 wrote: >> Since it seems there are enough devices that don't have access to MMB, we could use OSKey (Cmd/Super/Win) key, instead of Alt. > > Any feedback on this? If I read your suggestion correctly this is only OSKey + mouse move? as I in it won't stop cmd+c, cmd+v etc. working - I think this is a good compromise - doesn't the OS Key open the start menu on Windows?
Author
Owner

In #69323#766374, @AnadinX wrote:
If I read your suggestion correctly this is only OSKey + mouse move? as I in it won't stop cmd+c, cmd+v etc. working - I think this is a good compromise - doesn't the OS Key open the start menu on Windows?

It would be OSKey-LMB (instead of Alt-LMB).

> In #69323#766374, @AnadinX wrote: > If I read your suggestion correctly this is only OSKey + mouse move? as I in it won't stop cmd+c, cmd+v etc. working - I think this is a good compromise - doesn't the OS Key open the start menu on Windows? It would be OSKey-LMB (instead of Alt-LMB).

Added subscriber: @blenderrocket

Added subscriber: @blenderrocket

In #69323#766376, @ideasman42 wrote:

In #69323#766374, @AnadinX wrote:
If I read your suggestion correctly this is only OSKey + mouse move? as I in it won't stop cmd+c, cmd+v etc. working - I think this is a good compromise - doesn't the OS Key open the start menu on Windows?

It would be OSKey-LMB (instead of Alt-LMB).

For touchpads, a modifier key that works without LMB would be much more convenient; especially for touchpads with integrated mouse buttons it can be very hard to press the mouse button and move the cursor at the same time. Also multitouch gestures (as already enabled on macOS) would obviate the need for using a key combination most of the time for many touchpads.

> In #69323#766376, @ideasman42 wrote: >> In #69323#766374, @AnadinX wrote: >> If I read your suggestion correctly this is only OSKey + mouse move? as I in it won't stop cmd+c, cmd+v etc. working - I think this is a good compromise - doesn't the OS Key open the start menu on Windows? > > It would be OSKey-LMB (instead of Alt-LMB). For touchpads, a modifier key that works without LMB would be much more convenient; especially for touchpads with integrated mouse buttons it can be very hard to press the mouse button and move the cursor at the same time. Also multitouch gestures (as already enabled on macOS) would obviate the need for using a key combination most of the time for many touchpads.

Using the OSkey is a no-go on Windows. It breaks convention and produces unwanted behavior on key release, Suppressing that behavior would get messy, interfering with expected OS behavior. The OSkey is in a great position, but it comes with a ton of baggage (on Windows).

Is the goal to create a key combo that emulates the middle mouse button, or to create a keyboard layout for users that don't have a middle mouse button? I've realized that my suggestions have been targeting the latter, and they don't really solve the former.

Using the OSkey is a no-go on Windows. It breaks convention and produces unwanted behavior on key release, Suppressing that behavior would get messy, interfering with expected OS behavior. The OSkey is in a great position, but it comes with a ton of baggage (on Windows). Is the goal to create a key combo that emulates the middle mouse button, or to create a keyboard layout for users that don't have a middle mouse button? I've realized that my suggestions have been targeting the latter, and they don't really solve the former.

We intentionally changed macOS to use cmd key to get more standard keyboard shortcuts, it would be unfortunate to give that up. Conflicting with default operating system configuration to move windows on Linux is also problematic.

I'm not convinced this is a pressing issue that we need to solve in a different way, that's it's worth the effort and pain of shaking things up. Yes it's a bit messy and it's not ideal that some functionality is not available with an easy shortcut when using middle mouse emulation. But what we have now is also generally usable.

We just did a lot of keymap changes in 2.80, I'd rather postpone this kind of change that affects commonly used shortcuts for many users.

We intentionally changed macOS to use cmd key to get more standard keyboard shortcuts, it would be unfortunate to give that up. Conflicting with default operating system configuration to move windows on Linux is also problematic. I'm not convinced this is a pressing issue that we need to solve in a different way, that's it's worth the effort and pain of shaking things up. Yes it's a bit messy and it's not ideal that some functionality is not available with an easy shortcut when using middle mouse emulation. But what we have now is also generally usable. We just did a lot of keymap changes in 2.80, I'd rather postpone this kind of change that affects commonly used shortcuts for many users.
Author
Owner

In #69323#766445, @ThatAsherGuy wrote:
Using the OSkey is a no-go on Windows. It breaks convention and produces unwanted behavior on key release, Suppressing that behavior would get messy, interfering with expected OS behavior. The OSkey is in a great position, but it comes with a ton of baggage (on Windows).

From looking into the WIN32 API, it looks possible to handle the windows key events, suppressing the start menu when used to emulate MMB.


In #69323#766547, @brecht wrote:
We intentionally changed macOS to use cmd key to get more standard keyboard shortcuts, it would be unfortunate to give that up.

This could be done so it only impacts Ctrl-Click events (when MMB emulation is enabled). Nearly all shortcuts using Cmd would still work.

Conflicting with default operating system configuration to move windows on Linux is also problematic.

Agree, not great. OTOH, the current situation is quite bad too.

I'm not convinced this is a pressing issue that we need to solve in a different way, that's it's worth the effort and pain of shaking things up. Yes it's a bit messy and it's not ideal that some functionality is not available with an easy shortcut when using middle mouse emulation. But what we have now is also generally usable.

We just did a lot of keymap changes in 2.80, I'd rather postpone this kind of change that affects commonly used shortcuts for many users.

Whatever we do in this case - its a non-default keymap option, so having an alternate way to access MMB emulation may not be such a big change.

If we choose not to solve this, the documentation for MMB emulation should state something to this effect:

Middle mouse button emulation gives reduced functionality, making actions such as editing multiple object values at once and some selection operations impossible. For all operations to be accessible, use an input device with a middle mouse button.

... list all operations which can't be accessed w/ MMB-emulation.

> In #69323#766445, @ThatAsherGuy wrote: > Using the OSkey is a no-go on Windows. It breaks convention and produces unwanted behavior on key release, Suppressing that behavior would get messy, interfering with expected OS behavior. The OSkey is in a great position, but it comes with a ton of baggage (on Windows). From looking into the WIN32 API, it looks possible to handle the windows key events, suppressing the start menu when used to emulate MMB. --- > In #69323#766547, @brecht wrote: > We intentionally changed macOS to use cmd key to get more standard keyboard shortcuts, it would be unfortunate to give that up. This could be done so it only impacts Ctrl-Click events (when MMB emulation is enabled). Nearly all shortcuts using Cmd would still work. > Conflicting with default operating system configuration to move windows on Linux is also problematic. Agree, not great. OTOH, the current situation is quite bad too. > I'm not convinced this is a pressing issue that we need to solve in a different way, that's it's worth the effort and pain of shaking things up. Yes it's a bit messy and it's not ideal that some functionality is not available with an easy shortcut when using middle mouse emulation. But what we have now is also generally usable. > > We just did a lot of keymap changes in 2.80, I'd rather postpone this kind of change that affects commonly used shortcuts for many users. Whatever we do in this case - its a non-default keymap option, so having an alternate way to access MMB emulation may not be such a big change. If we choose not to *solve* this, the documentation for MMB emulation should state something to this effect: > Middle mouse button emulation gives reduced functionality, making actions such as editing multiple object values at once and some selection operations impossible. For all operations to be accessible, use an input device with a middle mouse button. > > ... list all operations which can't be accessed w/ MMB-emulation.

Added subscriber: @Floatharr

Added subscriber: @Floatharr

I've used emulate mmb since the start maybe a decade ago, because I built up muscle memory for alt-orbiting and panning with a pen tablet from other software. For multiple reasons I would highly prefer to not have to readjust.

I can see the issues using alt as a modifier causes, and I think having an option to use the space-lmb as mmb emulation could make sense. Spacebar as the button my thumb is resting on nearly 100% of the time criminally underused as someone who doesn't work on animations, activates tools mostly with hotkeys, and got used to F3 being the search key, which I imagine represents a sizeable chunk of the userbase. Shift-space to activate playback, and ctrl-space to maximize the viewport seem much simpler to relocate. As an added bonus, changing from alt-lmb to space-lmb doesn't feel as major of an adjustment than using mmb for orbit. Most mice I've used make my finger hurt if I use the middle button too much. Even adding the option to specify your own preference either for the modifier would help, with the user picking the trade-off they prefer.

Additionally for those of us that have a middle mouse button but it's inconvenient to use, it doesn't need to work universally everywhere, for example alt-clicking a button doesn't need to translate to a middle mouse press since it's a much less frequent action than orbiting or panning the view, so it could be context-sensitive without having to make major compromises or losing functionality. Possibly slightly confusing to have exceptions to the rule, but personally it took me a long time to realize that mmb emulation is completely universal instead of context sensitive to orbiting and panning actions as I assumed it would be. As for rebinding options, currently I believe with left click select alt-rmb does nothing in any context, which for example could be interpreted as an alt- lmb with mmb emulation enabled, or alt rmb drag to change views.

I don't know if any of my suggestions are viable but I can still see a lot of improvements that can be made.

I've used emulate mmb since the start maybe a decade ago, because I built up muscle memory for alt-orbiting and panning with a pen tablet from other software. For multiple reasons I would highly prefer to not have to readjust. I can see the issues using alt as a modifier causes, and I think having an option to use the space-lmb as mmb emulation could make sense. Spacebar as the button my thumb is resting on nearly 100% of the time criminally underused as someone who doesn't work on animations, activates tools mostly with hotkeys, and got used to F3 being the search key, which I imagine represents a sizeable chunk of the userbase. Shift-space to activate playback, and ctrl-space to maximize the viewport seem much simpler to relocate. As an added bonus, changing from alt-lmb to space-lmb doesn't feel as major of an adjustment than using mmb for orbit. Most mice I've used make my finger hurt if I use the middle button too much. Even adding the option to specify your own preference either for the modifier would help, with the user picking the trade-off they prefer. Additionally for those of us that have a middle mouse button but it's inconvenient to use, it doesn't need to work universally everywhere, for example alt-clicking a button doesn't need to translate to a middle mouse press since it's a much less frequent action than orbiting or panning the view, so it could be context-sensitive without having to make major compromises or losing functionality. Possibly slightly confusing to have exceptions to the rule, but personally it took me a long time to realize that mmb emulation is completely universal instead of context sensitive to orbiting and panning actions as I assumed it would be. As for rebinding options, currently I believe with left click select alt-rmb does nothing in any context, which for example could be interpreted as an alt- lmb with mmb emulation enabled, or alt rmb drag to change views. I don't know if any of my suggestions are viable but I can still see a lot of improvements that can be made.

Added subscriber: @AndreaMonzini

Added subscriber: @AndreaMonzini

Hello, i am testing the OS-Key to emulate the MMB and it works well in GNU/Linux with GNOME desktop environment but i had to disable the "Window Action Key" in Gnome Tweaks and disable the OS-Key ( super key ) shortcut with the terminal.

During the walk navigation " shift + ` ", it would be useful assign the teleport to the OS-Key instead of the middle mouse.

Anyway the option to "Emulate Middle Mouse" is very important, in particular working with a pen/tablet ! Thank you.

Hello, i am testing the OS-Key to emulate the MMB and it works well in GNU/Linux with GNOME desktop environment but i had to disable the "Window Action Key" in Gnome Tweaks and disable the OS-Key ( super key ) shortcut with the terminal. During the walk navigation " shift + ` ", it would be useful assign the teleport to the OS-Key instead of the middle mouse. Anyway the option to "Emulate Middle Mouse" is very important, in particular working with a pen/tablet ! Thank you.

Added subscriber: @MadMinstrel

Added subscriber: @MadMinstrel

Emulate MMB is just indispensable with any kind of pen input devices. Buttons on pens are generally unreliable - in that you can't rely on it that they exist at all, and how many.

Emulate MMB is just indispensable with any kind of pen input devices. Buttons on pens are generally unreliable - in that you can't rely on it that they exist at all, and how many.

Added subscriber: @jenkm

Added subscriber: @jenkm

Just please do not use "OS-Key" name in UI, such key does not exist.
Instead use Cmd/Win/Super according to the operating system.

Just please do not use "OS-Key" name in UI, such key does not exist. Instead use Cmd/Win/Super according to the operating system.

@jenkm yes indeed. Nicest would be if we could use the correct name depending on the platform.

@jenkm yes indeed. Nicest would be if we could use the correct name depending on the platform.
Member

Added subscriber: @Harley

Added subscriber: @Harley
Member

@jenkm - Just please do not use "OS-Key" name in UI, such key does not exist. Instead use Cmd/Win/Super according to the operating system.

There are some times times right now when "OS-Key" is exposed to users. But I personally wasn't planning on addressing that until we update our font binaries so they include symbols for these keys in https://developer.blender.org/D6055 Most of the time we don't want to expose a name but a symbol.

Symbols2.png

>@jenkm - Just please do not use "OS-Key" name in UI, such key does not exist. Instead use Cmd/Win/Super according to the operating system. There are some times times right now when "OS-Key" is exposed to users. But I personally wasn't *planning* on addressing that until we update our font binaries so they include symbols for these keys in https://developer.blender.org/D6055 Most of the time we don't want to expose a name but a symbol. ![Symbols2.png](https://archive.blender.org/developer/F8260090/Symbols2.png)

Added subscriber: @zgorg

Added subscriber: @zgorg

I used grless to emulate middle mouse button and it's working perfectly.

I used grless to emulate middle mouse button and it's working perfectly.

This preference for "Emulate Middle Mouse" should be removed.
Alternative shortcuts must be present in the default keymap, so you can easily use mouse, trackpad and tablet pen at the same time.
No need for options that remap buttons globally, this is confusing, it's hard to think about all the possible changes in all shortcuts in all editors.
When you emulate MMB or Numpad this does not change the shortcuts in the tooltips, again confusing.
I would even say that the need for "Emulate" creates a bad user experience, it looks like some kind of inferiority of your equipment.
So, always use Alt+Mouse as an alternative to MMB, and change conflicting shortcuts.
Using the Win/Super key as a modifier does not look like a good idea because these keys are not intended for such purposes.
No need for these ugly hacks in the 2020.
Anyway, "Emulate Middle Mouse" and "Emulate Numpad" should be in the Keymap > Preferences, and reassign some specific keys rather than remap globally.

This preference for "Emulate Middle Mouse" should be removed. Alternative shortcuts must be present in the default keymap, so you can easily use mouse, trackpad and tablet pen at the same time. No need for options that remap buttons globally, this is confusing, it's hard to think about all the possible changes in all shortcuts in all editors. When you emulate MMB or Numpad this does not change the shortcuts in the tooltips, again confusing. I would even say that the need for "Emulate" creates a bad user experience, it looks like some kind of inferiority of your equipment. So, always use Alt+Mouse as an alternative to MMB, and change conflicting shortcuts. Using the Win/Super key as a modifier does not look like a good idea because these keys are not intended for such purposes. No need for these ugly hacks in the 2020. Anyway, "Emulate Middle Mouse" and "Emulate Numpad" should be in the Keymap > Preferences, and reassign some specific keys rather than remap globally.

Could we use a long press event here? I mentioned them on DevTalk the other day, in the context of how we could build on top of D5153, and I think this could be an interesting test-case for the idea.

Could we use a long press event here? [I mentioned them ](https://devtalk.blender.org/t/key-repeat-filtering-and-related-tweaks-to-the-event-system/11371) on DevTalk the other day, in the context of how we could build on top of [D5153](https://archive.blender.org/developer/D5153), and I think this could be an interesting test-case for the idea.
Author
Owner

Long press doesn't work well for tweak or any action that's expected to operate on mouse-down.

Long press doesn't work well for tweak or any action that's expected to operate on mouse-down.

That'd depend on how you use it, wouldn't it? If we activated pan/orbit/zoom on drag, we could use long press as a fall-through. You'll notice a hitch if you use a larger drag threshold, but that can be fixed with a two-line tweak to wm_handlers_do.

That'd depend on how you use it, wouldn't it? If we activated pan/orbit/zoom on drag, we could use long press as a fall-through. You'll notice a hitch if you use a larger drag threshold, but that can be fixed with a two-line tweak to `wm_handlers_do`.

Added subscriber: @niewinny

Added subscriber: @niewinny

I tried to replace MMB with alt+LMB but it looks like it is not fully possible yet

  • the Generic Gizmo hotkeys are not exposed so it's not possible to set gizmos to work with alt+LMB the same way they work with MMB(it's odd since you can search for gizmo hotkeys)
  • panel hotkeys take no effect for alt or shift + LMB so changing those hotkeys in View2D button list just doesn't work

also, even though alt+LMB can be set together with MMB it will not work for addons anymore unless those hotkeys will be supported by creators as well, it may hit tablet users
emulate is an extremely elegant solution

I tried to replace MMB with alt+LMB but it looks like it is not fully possible yet - the Generic Gizmo hotkeys are not exposed so it's not possible to set gizmos to work with alt+LMB the same way they work with MMB(it's odd since you can search for gizmo hotkeys) - panel hotkeys take no effect for alt or shift + LMB so changing those hotkeys in View2D button list just doesn't work also, even though alt+LMB can be set together with MMB it will not work for addons anymore unless those hotkeys will be supported by creators as well, it may hit tablet users emulate is an extremely elegant solution

Added subscriber: @a.monti

Added subscriber: @a.monti

Hi! As a premise, I don't use the emulate-3-button option, even the few times I use a tablet in blender I have mapped the MMB to one of the side buttons of the pen, so sorry in advance if I'm missing something here.

I was wondering though if there was any major issue in assigning the emulate option based on the user selection mode, so Alt+RMB for left-click-select, and Alt+LMB for right-click-select.
It would require to switch some of the existent shortcuts but from what I can see they are mostly lasso-selections, that are in fact inconsistent with the selection button.

Hi! As a premise, I don't use the emulate-3-button option, even the few times I use a tablet in blender I have mapped the MMB to one of the side buttons of the pen, so sorry in advance if I'm missing something here. I was wondering though if there was any major issue in assigning the emulate option based on the user selection mode, so **Alt+RMB** for left-click-select, and **Alt+LMB** for right-click-select. It would require to switch some of the existent shortcuts but from what I can see they are mostly lasso-selections, that are in fact inconsistent with the selection button.

Removed subscriber: @bent

Removed subscriber: @bent

What if we used the "Caps Lock" button? This button is rarely used for writing or anything in general. The "Shift" key would still allow for capitalization control when typing words too, which in my own opinion is better than loosing the functionality of the "Alt" key from so many important hotkeys in Blender.
On Windows, I manually remapped my "Caps Lock" button as another "Alt", which already increased the functionality of that button for me.

What if we used the "Caps Lock" button? This button is rarely used for writing or anything in general. The "Shift" key would still allow for capitalization control when typing words too, which in my own opinion is better than loosing the functionality of the "Alt" key from so many important hotkeys in Blender. On Windows, I manually remapped my "Caps Lock" button as another "Alt", which already increased the functionality of that button for me.

Added subscriber: @Ruthwik

Added subscriber: @Ruthwik

As several others have mentioned, emulate 3 button mouse is pretty important for those of us working with tablets.
The only problem is it messes up ring selection in edit mode, everything else is fine with double click for me. So my idea was, as a tablet user, I only use it in sculpt mode more than any other place, and by extension, object mode when switching between objects to sculpt and navigate around. I ended up adding a shortcut to 3D view that toggles the emulate 3 button mouse operator (with the help of python tooltips) whenever I wanted, so I could quickly enable it for sculpting/tablet based workflows, but disable it once I want to enter edit mode. This way, we could have an option to preserve the default alt based selection in edit mode and not have any problems with edge rings and double/triple tapping and so on. Once you want to get back to the sculpting/tablet based workflows, you could toggle it back on. So yeah, just exposing the toggle in viewport through a shortcut, a separate option or a pie menu (by adding in other emulate options too perhaps?) could go a long way in giving control to quickly switch between the two.

EDIT: Apparently, all of this could be very easily achieved by a python script that I found on a forum (are links to blender stackexcchange allowed here?) and works perfectly for quick switching. Hopefully it can be integrated right into the viewport somewhere?

As several others have mentioned, emulate 3 button mouse is pretty important for those of us working with tablets. The only problem is it messes up ring selection in edit mode, everything else is fine with double click for me. So my idea was, as a tablet user, I only use it in sculpt mode more than any other place, and by extension, object mode when switching between objects to sculpt and navigate around. I ended up adding a shortcut to 3D view that toggles the emulate 3 button mouse operator (with the help of python tooltips) whenever I wanted, so I could quickly enable it for sculpting/tablet based workflows, but disable it once I want to enter edit mode. This way, we could have an option to preserve the default alt based selection in edit mode and not have any problems with edge rings and double/triple tapping and so on. Once you want to get back to the sculpting/tablet based workflows, you could toggle it back on. So yeah, just exposing the toggle in viewport through a shortcut, a separate option or a pie menu (by adding in other emulate options too perhaps?) could go a long way in giving control to quickly switch between the two. EDIT: Apparently, all of this could be very easily achieved by a python script that I found on a forum (are links to blender stackexcchange allowed here?) and works perfectly for quick switching. Hopefully it can be integrated right into the viewport somewhere?
Author
Owner
Added subscribers: @DafyddSmith, @mano-wii, @guzu, @Mets, @JacquesLucke
Member

Added subscriber: @JosephEagar

Added subscriber: @JosephEagar
Member

On the point about mapping middle mouse to a tablet pen button, I actually find I get less hand strain using emulate numpad and ALT.

One thing worth mentioning is we could add a multitouch viewport navigation system. I've implemented this three or four times myself, you can do away with hotkeys entirely if you're careful to properly handle touch cancel events (e.g. if a one-finger-touch event is quickly followed by two-finger-touch, you have to detect if the one-finger event executed a tool, undo it if necessary, and then transition into multitouch modal navigation mode).

Here's a webgl example of multitouch navigation if you have a tablet or touchscreen laptop, (click the little hand icon):

https://joeedh.github.io/webgl-app-framework/index.html

And yes, that's my github repo and my code.

On the point about mapping middle mouse to a tablet pen button, I actually find I get less hand strain using emulate numpad and ALT. One thing worth mentioning is we could add a multitouch viewport navigation system. I've implemented this three or four times myself, you can do away with hotkeys entirely if you're careful to properly handle touch cancel events (e.g. if a one-finger-touch event is quickly followed by two-finger-touch, you have to detect if the one-finger event executed a tool, undo it if necessary, and then transition into multitouch modal navigation mode). Here's a webgl example of multitouch navigation if you have a tablet or touchscreen laptop, (click the little hand icon): https://joeedh.github.io/webgl-app-framework/index.html And yes, that's my github repo and my code.

One of the first thing i do after install Blender is change the preference to emulate the MMB with the OS-Key, very important in my workflow ( and i suppose very important for who use pen/tablet).
So i hope we will keep this option.

One of the first thing i do after install Blender is change the preference to emulate the MMB with the OS-Key, very important in my workflow ( and i suppose very important for who use pen/tablet). So i hope we will keep this option.

Added subscriber: @exovox

Added subscriber: @exovox

I also hope we can keep this option, as I have tried alternatives, to no avail. I have a lightweight setup with laptop, stylus and eGPU. I only just got a mouse, and I would still prefer to keep the option of travelling without it.

Sometimes, like in my case, it's impossible to find drivers which enable hotkey mapping so that I can e.g. use one of the side buttons on my stylus as middle mouse button. Autohotkey is also an option, but a deep pain in the button. For the time being, I wrote a script to enable one to toggle Emulate Numpad and Emulate MMB. It's not perfect (toggling something very frequently is not the way this should be designed), but it's better than anything else I've tried.

https://github.com/brybalicious/toggle_mmb_numpad

I also hope we can keep this option, as I have tried alternatives, to no avail. I have a lightweight setup with laptop, stylus and eGPU. I only just got a mouse, and I would still prefer to keep the option of travelling without it. Sometimes, like in my case, it's impossible to find drivers which enable hotkey mapping so that I can e.g. use one of the side buttons on my stylus as middle mouse button. Autohotkey is also an option, but a deep pain in the button. For the time being, I wrote a script to enable one to toggle Emulate Numpad and Emulate MMB. It's not perfect (toggling something very frequently is not the way this should be designed), but it's better than anything else I've tried. https://github.com/brybalicious/toggle_mmb_numpad

Added subscriber: @AlienTux

Added subscriber: @AlienTux

In #69323#870885, @a.monti wrote:
I was wondering though if there was any major issue in assigning the emulate option based on the user selection mode, so Alt+RMB for left-click-select, and Alt+LMB for right-click-select.
It would require to switch some of the existent shortcuts but from what I can see they are mostly lasso-selections, that are in fact inconsistent with the selection button.

I believe this is probably the best option right now. Alt+LMB disables a lot of useful functionality and basically blocks access UI buttons.

Removing "Emulate MMB" would affect people who use touchpad/pen quite severely.

Using OS-Key can prove to be complicated in different OS and using Spacebar could be an option, but if spacebar is hardware locked in some keyboards/laptopts then it's a bit of an issue as well.

Personally, I never even know (unitl today) that lasso select could be activated with with Ctrl + RMB and I haven't seen many people use it so just using Alt+RMB for left click select and Alt+LMB for right click select makes sense to me.

EDIT: I would also like to mention that I was doing some testing with modals and pie menus and the ALT modifier seems to work as long as you don't let go the key that enables the pie menu. Would it be possible to modify the behaviour of ALT key to work as a mouse modifier only while there is no Pie Menu open?

> In #69323#870885, @a.monti wrote: > I was wondering though if there was any major issue in assigning the emulate option based on the user selection mode, so **Alt+RMB** for left-click-select, and **Alt+LMB** for right-click-select. > It would require to switch some of the existent shortcuts but from what I can see they are mostly lasso-selections, that are in fact inconsistent with the selection button. I believe this is probably the best option right now. Alt+LMB disables a lot of useful functionality and basically blocks access UI buttons. Removing "Emulate MMB" would affect people who use touchpad/pen quite severely. Using OS-Key can prove to be complicated in different OS and using Spacebar could be an option, but if spacebar is hardware locked in some keyboards/laptopts then it's a bit of an issue as well. Personally, I never even know (unitl today) that lasso select could be activated with with Ctrl + RMB and I haven't seen many people use it so just using **Alt+RMB** for left click select and **Alt+LMB** for right click select makes sense to me. EDIT: I would also like to mention that I was doing some testing with modals and pie menus and the ALT modifier seems to work as long as you don't let go the key that enables the pie menu. Would it be possible to modify the behaviour of ALT key to work as a mouse modifier only while there is no Pie Menu open?

Added subscriber: @erminos

Added subscriber: @erminos
Philipp Oeser removed the
Interest
User Interface
label 2023-02-10 09:25:12 +01:00

Indeed, alt+LMB has lots of collisions, and alt+RMB has much less of them (mostly stencils controls), could be a viable solution.

Indeed, alt+LMB has lots of collisions, and alt+RMB has much less of them (mostly stencils controls), could be a viable solution.
Sign in to join this conversation.
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
29 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#69323
No description provided.