In Blender 2.8, we want to make some changes to the default keymap. The goal is not to do a complete overhaul of the Blender keymap, but rather to identify specific problems and then solve them. Blender 2.8 will require some amount of relearning, so now is a good time to address some of the keymap issues we have.
Current State (testing)
For now this shows the new keymap for people who want to use 2.8
The list of changes which have been applied is maintained here: T55194
Previous State (Blender Version rBcfc4805455b)
lots of information is interesting, but content is not matching current Blender 2.8 state.
Specifically, we want to address these issues:
- Mode selection is very inconsistent
- Switching to some modes is not possible from certain modes
- The hotkeys to change modes changes depending on the active mode
- Tab to toggle Edit Mode is fundamentally in conflict with the fact that we have more than two modes
- The laptop-oriented option ‘Emulate Numpad’ is not good
- It makes switching between desktops and laptops a pain when they are not consistent
- The row of number keys don’t spatially communicate the view directions, unlike the numpad numbers
- It’s a pain for users to have to manually switch this setting depending on the keyboard they are using.
- Space bar to switch active tools conflicts with the Operator Search feature
- It’s inconsistent if it’s double tap space some places, and single tap space in others
- It makes Operator search slower to access if you have to press space twice.
- Number keys to switch layers no longer map well to 1-9 number row keys
- We can now have an arbitrary number of collections, not just 20
- Users can also have less than 20 collections, rendering the number keys useless in that case
- Collections can be nested, so mapping to 1-9 will produce unexpected behaviour
- We have many shortcuts for specific enum settings (eg period for 3D Cursor Pivot)
- This makes it hard to learn all the shortcuts, because users have to remember many hotkeys for one feature
- This makes our keymap very bloated, because one feature (eg pivot point) uses multiple keyboard keys
- This means many useful features (eg orientation) cannot be quickly accessible from the keyboard
With the above problems in mind, here’s how we are thinking of changing the default keymap in Blender 2.8:
Switch Modes: Ctrl-Tab + Pie menu
We want to keep using the Tab key for mode switching, but make it more consistent and better suited to switch quickly to any mode. We do this by keeping the old tab-to-editmode behavior, but also making it so you can hold Tab and drag to spawn a pie menu with all the modes available. Pie menus can be very quick to use, because you can simply flick using a gesture while holding Tab.
Switch Collections: Dash (-)
For Collection (layer) switching, we can no longer use the number keys as we did in the past, because of the fact that users can have an arbitrary amount of Collections, and because they can be nested.
However, we still want to enable a quick way to switch between them using a keyboard-centric workflow, like so:
Users can hit the dash key, which opens a menu of Collections under the mouse cursor. They can then simply click each Collection to set it to Local View, hiding all the other collections.
Also, these Collections are dynamically assigned a hotkey, which becomes active and visible when this menu is open. If Collections are nested, users can hit two number keys in a row to jump to nested collections.
Operator Search: F3 (Cmd-F on OSX)
This can make the Operator Search feature more consistent, so it’s always one keystroke away.
Switch Tools: Space
Makes switching the active tool very easy and accessible. It can become context sensitive to fit with the mode and editor.
Applications where a tool system is the only way to access functionality often bind these tools to keys.
Blender already has a fast, keyboard oriented workflow, which we don't want to drop at the expense of introducing a tool system.
On the other hand, a tool system does not have to be inefficient (if an add-on adds a useful tool to the toolbar, we should have a fast way to access it).
Using space as a modifier key allows the full set of keys to be used for tool access without conflicting with existing bindings.
Tools key bindings are set based on the keys used for immediate (non-tool) access.
This way pressing:
- G grabs
- Space-G sets the grab tool.
... same for scale, rotate .. etc.
This way experienced users who are familiar with Blender's shortcuts can keep the toolbar hidden and occasionally access them via keys they already know.
- Tools without immediate access auto-assign a key.
- Holding Space, moving the cursor and releasing can be used as a quick way to switch tools (like a pie menu).
- Arrow keys can also be used to navigate to a different tool - starting from the active tool.
Enable specific Sculpt & Paint Tools: Various direct keyboard shortcuts
To make Blender more consistent, we want to the number rows to behave consistently. For this reason, we would like to remove the number keys to switch tools in paint and sculpt mode. However, there will still be ways to use hotkeys for switching tools, just not the number row keys. In Paint & Sculpt modes, the hotkeys will be displayed in the toolbar. Users can also use the space bar to get a quick menu and change tools this way.
Viewpoint Switching: Numpad numbers & Tilde (~) Pie Menu
This makes it more consistent, so that the number keys work in a consistent way, both for laptops and desktops.
Switch Workspaces: Ctrl+Tab (next) & Ctrl+Shift+Tab (previous)
With Blender 2.8, we are introducing workspaces. We want to make switching between them easy. We want to make it work like switching browser tabs.
Pivot Point: Period (.) to cycle though them. Hold period (.) to display pie menu with all pivot options
This makes it easier to use, because users only have to remember one shortcut key for this one feature. Users can either use the period key to cycle through pivot options, or they can hold down period to display a pie menu for quick switching.
Orientation: Comma (,) to cycle though them. Hold comma (,) to display pie menu with all orientation options
This makes it easier to use, because users only have to remember one shortcut key for this one feature. Users can either use the comma key to cycle through orientation options, or they can hold down comma to display a pie menu for quick switching.
Here’s a more concise overview of the changes:
|Sub-modes( Vert/Edge/Face)||1, 2, 3||done|
|Search||TIlde or F3||done|
|Active Tool Switching||Space||done|
|Workspaces Switching||Ctrl+Tab & Ctrl+Shift+Tab||done|
|Pivot Switch||Period (.)|
|Orientation Switch||Comma (,)|
|Viewpoint Switching||Numpad Numbers & Tilde key (~) Pie menu||done|
|Collections Switching||Dash (-)|
|Context Sensitive Menu||W||done|
Current Blender Keymap Inconsistencies
Anton Atnoguzin mailed us with a list of inconsistencies in Blender's current keymap. Here's a list:
|Current Inconsistency||Similar To||Fix||Status|
|Image Editor||Unwrap: E||3D View Unwrap (U)||U||done|
|Mesh Edit Mode||Vertex Ungroup: None||Object Mode Ungroup (Ctrl-Alt-G)||Ctrl-Alt-G||done|
|Select Mirror: None||Pose Mode Select Mirror (Ctrl-Shift-M)||Ctrl-Shift-M||done|
|Lattice Edit||Proportional Edit Connected: None||Proportional Edit Connected (Alt-O)||Alt-O||development needed|
|Flip Ctrl-F||Switch Direction (Armature) & Flip Quats (Pose) (Alt-F)||Alt-F||done|
|Pose Mode||Flip Activate/Selected Bone: Shift-Ctrl-F||Select Mirror (Shift-Ctrl-M)||Shift-Ctrl-M||done|
|Dopesheet||Sample Keyframes: Shift-O||Conflicts with Proportional Edit Profile (Shift-O)||Shift-Alt-O||done|
|Mirror: Shift-M||Mirror: (Ctrl-M)||Ctrl-M||done|
|Graph Editor||Sample Keyframes: Shift-O||Conflicts with Proportional Edit Profile (Shift-O)||Shift-Alt-O||done|
|Mirror: Shift-M||Mirror: (Ctrl-M)||Ctrl-M||done|
|Node Editor||Ungroup: Alt-G||Ungroup(Ctrl-Alt-G)||Ctrl-Alt-G||done|
|Animation Channels||Ungroup: Alt-G||Ungroup(Ctrl-Alt-G)||Ctrl-Alt-G||done|
|NLA||Add Meta-Strip: Shift-G||Add Meta Strip (Sequencer): (Ctrl-G)||Ctrl-G||done|
|Remove Meta Strips: Alt-G||Remove Meta Strip (Sequencer): (Ctrl-Alt-G)||Ctrl-G||done|
|Particle Mode||Tools: None||Paint Tools (Various)||Various|
|Outliner||Add Driver: D||Add Driver (Ctrl-D)||Ctrl-D||done|
|Remove Driver: Alt-D||Add Driver (Ctrl-Alt-D)||Ctrl-Alt-D||done|
|Duplicate Object: None||Duplicate Object (Shift-D)||Shift-D||development needed|
|Duplicate Object Linked: None||Duplicate Object Linked (Alt-D)||Alt-D||development needed|
|Clip Editor||Center Current Frame Numpad Period (.)||Center Current Frame (Numpad 0)||Numpad 0||done|
|Sequencer||UnMeta Strip Alt-G||Ungroup (Ctrl-Alt-G)||Ctrl-Alt-G||done|
We want to improve support for Mac keyboards in two ways:
- We want to globally support the Cmd key in addition to Ctrl
- We want to support Backspace for Delete