diff options
Diffstat (limited to 'release/scripts/presets/keyconfig/keymap_data/blender_default.py')
-rw-r--r-- | release/scripts/presets/keyconfig/keymap_data/blender_default.py | 530 |
1 files changed, 291 insertions, 239 deletions
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py index e70fe63677a..9f921bd2b70 100644 --- a/release/scripts/presets/keyconfig/keymap_data/blender_default.py +++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py @@ -208,7 +208,6 @@ class Params: # ------------------------------------------------------------------------------ # Constants - # Physical layout. NUMBERS_1 = ('ONE', 'TWO', 'THREE', 'FOUR', 'FIVE', 'SIX', 'SEVEN', 'EIGHT', 'NINE', 'ZERO') # Numeric order. @@ -846,8 +845,156 @@ def km_user_interface(_params): # ------------------------------------------------------------------------------ -# Editors +# Shared Between Editors (Mask, Time-Line) +def km_mask_editing(params): + items = [] + keymap = ( + "Mask Editing", + {"space_type": 'EMPTY', "region_type": 'WINDOW'}, + {"items": items}, + ) + + if params.select_mouse == 'RIGHTMOUSE': + # mask.slide_point performs mostly the same function, so for the left + # click select keymap it's fine to have the context menu instead. + items.extend([ + ("mask.select", {"type": 'RIGHTMOUSE', "value": 'PRESS'}, + {"properties": [("deselect_all", not params.legacy)]}), + ("transform.translate", {"type": 'EVT_TWEAK_R', "value": 'ANY'}, None), + ]) + + items.extend([ + ("mask.new", {"type": 'N', "value": 'PRESS', "alt": True}, None), + op_menu("MASK_MT_add", {"type": 'A', "value": 'PRESS', "shift": True}), + *_template_items_proportional_editing( + params, connected=False, toggle_data_path='tool_settings.use_proportional_edit_mask'), + ("mask.add_vertex_slide", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, None), + ("mask.add_feather_vertex_slide", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True}, None), + ("mask.delete", {"type": 'X', "value": 'PRESS'}, None), + ("mask.delete", {"type": 'DEL', "value": 'PRESS'}, None), + ("mask.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True}, + {"properties": [("toggle", True)]}), + *_template_items_select_actions(params, "mask.select_all"), + ("mask.select_linked", {"type": 'L', "value": 'PRESS', "ctrl": True}, None), + ("mask.select_linked_pick", {"type": 'L', "value": 'PRESS'}, + {"properties": [("deselect", False)]}), + ("mask.select_linked_pick", {"type": 'L', "value": 'PRESS', "shift": True}, + {"properties": [("deselect", True)]}), + ("mask.select_box", {"type": 'B', "value": 'PRESS'}, None), + ("mask.select_circle", {"type": 'C', "value": 'PRESS'}, None), + ("mask.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, + {"properties": [("mode", 'ADD')]}), + ("mask.select_lasso", {"type": params.action_tweak, "value": 'ANY', "shift": True, "ctrl": True, "alt": True}, + {"properties": [("mode", 'SUB')]}), + ("mask.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True, "repeat": True}, None), + ("mask.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True, "repeat": True}, None), + *_template_items_hide_reveal_actions("mask.hide_view_set", "mask.hide_view_clear"), + ("clip.select", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True}, None), + ("mask.cyclic_toggle", {"type": 'C', "value": 'PRESS', "alt": True}, None), + ("mask.slide_point", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None), + ("mask.slide_spline_curvature", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None), + ("mask.handle_type_set", {"type": 'V', "value": 'PRESS'}, None), + ("mask.normals_make_consistent", + {"type": 'N', "value": 'PRESS', "ctrl" if params.legacy else "shift": True}, None), + ("mask.parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None), + ("mask.parent_clear", {"type": 'P', "value": 'PRESS', "alt": True}, None), + ("mask.shape_key_insert", {"type": 'I', "value": 'PRESS'}, None), + ("mask.shape_key_clear", {"type": 'I', "value": 'PRESS', "alt": True}, None), + ("mask.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None), + ("mask.copy_splines", {"type": 'C', "value": 'PRESS', "ctrl": True}, None), + ("mask.paste_splines", {"type": 'V', "value": 'PRESS', "ctrl": True}, None), + ("transform.translate", {"type": 'G', "value": 'PRESS'}, None), + ("transform.translate", {"type": params.select_tweak, "value": 'ANY'}, None), + ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None), + ("transform.resize", {"type": 'S', "value": 'PRESS'}, None), + ("transform.tosphere", {"type": 'S', "value": 'PRESS', "shift": True, "alt": True}, None), + ("transform.shear", {"type": 'S', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None), + ("transform.transform", {"type": 'S', "value": 'PRESS', "alt": True}, + {"properties": [("mode", 'MASK_SHRINKFATTEN')]}), + ]) + + # 3D cursor + if params.cursor_tweak_event: + items.extend([ + ("uv.cursor_set", params.cursor_set_event, None), + ("transform.translate", params.cursor_tweak_event, + {"properties": [("release_confirm", True), ("cursor_transform", True)]}), + ]) + else: + items.extend([ + ("uv.cursor_set", params.cursor_set_event, None), + ]) + + return keymap + + +def km_markers(params): + items = [] + keymap = ( + "Markers", + {"space_type": 'EMPTY', "region_type": 'WINDOW'}, + {"items": items}, + ) + + items.extend([ + ("marker.add", {"type": 'M', "value": 'PRESS'}, None), + ("marker.move", {"type": params.select_tweak, "value": 'ANY'}, + {"properties": [("tweak", True)]}), + ("marker.duplicate", {"type": 'D', "value": 'PRESS', "shift": True}, None), + ("marker.select", {"type": params.select_mouse, "value": 'PRESS'}, None), + ("marker.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True}, + {"properties": [("extend", True)]}), + ("marker.select", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True}, + {"properties": [("camera", True)]}), + ("marker.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True}, + {"properties": [("extend", True), ("camera", True)]}), + ("marker.select_box", {"type": params.select_tweak, "value": 'ANY'}, + {"properties": [("tweak", True)]}), + ("marker.select_box", {"type": 'B', "value": 'PRESS'}, None), + *_template_items_select_actions(params, "marker.select_all"), + ("marker.delete", {"type": 'X', "value": 'PRESS'}, None), + ("marker.delete", {"type": 'DEL', "value": 'PRESS'}, None), + ("marker.rename", {"type": 'M', "value": 'PRESS', "ctrl": True}, None), + ("marker.move", {"type": 'G', "value": 'PRESS'}, None), + ("marker.camera_bind", {"type": 'B', "value": 'PRESS', "ctrl": True}, None), + ]) + + return keymap + + +def km_time_scrub(_params): + items = [] + keymap = ( + "Time Scrub", + {"space_type": 'EMPTY', "region_type": 'WINDOW'}, + {"items": items}, + ) + + items.extend([ + ("anim.change_frame", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None), + ]) + + return keymap + + +def km_time_scrub_clip(_params): + items = [] + keymap = ( + "Clip Time Scrub", + {"space_type": 'CLIP_EDITOR', "region_type": 'PREVIEW'}, + {"items": items}, + ) + + items.extend([ + ("clip.change_frame", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None), + ]) + + return keymap + + +# ------------------------------------------------------------------------------ +# Editor (Property Editor) def km_property_editor(_params): items = [] @@ -894,6 +1041,9 @@ def km_property_editor(_params): return keymap +# ------------------------------------------------------------------------------ +# Editor (Outliner) + def km_outliner(params): items = [] keymap = ( @@ -983,6 +1133,9 @@ def km_outliner(params): return keymap +# ------------------------------------------------------------------------------ +# Editor (UV Editor) + def km_uv_editor(params): items = [] keymap = ( @@ -1114,6 +1267,9 @@ def km_uv_editor(params): return keymap +# ------------------------------------------------------------------------------ +# Editor (3D View) + # 3D View: all regions. def km_view3d_generic(_params): items = [] @@ -1478,151 +1634,8 @@ def km_view3d(params): return keymap -def km_mask_editing(params): - items = [] - keymap = ( - "Mask Editing", - {"space_type": 'EMPTY', "region_type": 'WINDOW'}, - {"items": items}, - ) - - if params.select_mouse == 'RIGHTMOUSE': - # mask.slide_point performs mostly the same function, so for the left - # click select keymap it's fine to have the context menu instead. - items.extend([ - ("mask.select", {"type": 'RIGHTMOUSE', "value": 'PRESS'}, - {"properties": [("deselect_all", not params.legacy)]}), - ("transform.translate", {"type": 'EVT_TWEAK_R', "value": 'ANY'}, None), - ]) - - items.extend([ - ("mask.new", {"type": 'N', "value": 'PRESS', "alt": True}, None), - op_menu("MASK_MT_add", {"type": 'A', "value": 'PRESS', "shift": True}), - *_template_items_proportional_editing( - params, connected=False, toggle_data_path='tool_settings.use_proportional_edit_mask'), - ("mask.add_vertex_slide", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, None), - ("mask.add_feather_vertex_slide", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True}, None), - ("mask.delete", {"type": 'X', "value": 'PRESS'}, None), - ("mask.delete", {"type": 'DEL', "value": 'PRESS'}, None), - ("mask.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True}, - {"properties": [("toggle", True)]}), - *_template_items_select_actions(params, "mask.select_all"), - ("mask.select_linked", {"type": 'L', "value": 'PRESS', "ctrl": True}, None), - ("mask.select_linked_pick", {"type": 'L', "value": 'PRESS'}, - {"properties": [("deselect", False)]}), - ("mask.select_linked_pick", {"type": 'L', "value": 'PRESS', "shift": True}, - {"properties": [("deselect", True)]}), - ("mask.select_box", {"type": 'B', "value": 'PRESS'}, None), - ("mask.select_circle", {"type": 'C', "value": 'PRESS'}, None), - ("mask.select_lasso", {"type": params.action_tweak, "value": 'ANY', "ctrl": True, "alt": True}, - {"properties": [("mode", 'ADD')]}), - ("mask.select_lasso", {"type": params.action_tweak, "value": 'ANY', "shift": True, "ctrl": True, "alt": True}, - {"properties": [("mode", 'SUB')]}), - ("mask.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True, "repeat": True}, None), - ("mask.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True, "repeat": True}, None), - *_template_items_hide_reveal_actions("mask.hide_view_set", "mask.hide_view_clear"), - ("clip.select", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True}, None), - ("mask.cyclic_toggle", {"type": 'C', "value": 'PRESS', "alt": True}, None), - ("mask.slide_point", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None), - ("mask.slide_spline_curvature", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None), - ("mask.handle_type_set", {"type": 'V', "value": 'PRESS'}, None), - ("mask.normals_make_consistent", - {"type": 'N', "value": 'PRESS', "ctrl" if params.legacy else "shift": True}, None), - ("mask.parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None), - ("mask.parent_clear", {"type": 'P', "value": 'PRESS', "alt": True}, None), - ("mask.shape_key_insert", {"type": 'I', "value": 'PRESS'}, None), - ("mask.shape_key_clear", {"type": 'I', "value": 'PRESS', "alt": True}, None), - ("mask.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None), - ("mask.copy_splines", {"type": 'C', "value": 'PRESS', "ctrl": True}, None), - ("mask.paste_splines", {"type": 'V', "value": 'PRESS', "ctrl": True}, None), - ("transform.translate", {"type": 'G', "value": 'PRESS'}, None), - ("transform.translate", {"type": params.select_tweak, "value": 'ANY'}, None), - ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None), - ("transform.resize", {"type": 'S', "value": 'PRESS'}, None), - ("transform.tosphere", {"type": 'S', "value": 'PRESS', "shift": True, "alt": True}, None), - ("transform.shear", {"type": 'S', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None), - ("transform.transform", {"type": 'S', "value": 'PRESS', "alt": True}, - {"properties": [("mode", 'MASK_SHRINKFATTEN')]}), - ]) - - # 3D cursor - if params.cursor_tweak_event: - items.extend([ - ("uv.cursor_set", params.cursor_set_event, None), - ("transform.translate", params.cursor_tweak_event, - {"properties": [("release_confirm", True), ("cursor_transform", True)]}), - ]) - else: - items.extend([ - ("uv.cursor_set", params.cursor_set_event, None), - ]) - - return keymap - - -def km_markers(params): - items = [] - keymap = ( - "Markers", - {"space_type": 'EMPTY', "region_type": 'WINDOW'}, - {"items": items}, - ) - - items.extend([ - ("marker.add", {"type": 'M', "value": 'PRESS'}, None), - ("marker.move", {"type": params.select_tweak, "value": 'ANY'}, - {"properties": [("tweak", True)]}), - ("marker.duplicate", {"type": 'D', "value": 'PRESS', "shift": True}, None), - ("marker.select", {"type": params.select_mouse, "value": 'PRESS'}, None), - ("marker.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True}, - {"properties": [("extend", True)]}), - ("marker.select", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True}, - {"properties": [("camera", True)]}), - ("marker.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True}, - {"properties": [("extend", True), ("camera", True)]}), - ("marker.select_box", {"type": params.select_tweak, "value": 'ANY'}, - {"properties": [("tweak", True)]}), - ("marker.select_box", {"type": 'B', "value": 'PRESS'}, None), - *_template_items_select_actions(params, "marker.select_all"), - ("marker.delete", {"type": 'X', "value": 'PRESS'}, None), - ("marker.delete", {"type": 'DEL', "value": 'PRESS'}, None), - ("marker.rename", {"type": 'M', "value": 'PRESS', "ctrl": True}, None), - ("marker.move", {"type": 'G', "value": 'PRESS'}, None), - ("marker.camera_bind", {"type": 'B', "value": 'PRESS', "ctrl": True}, None), - ]) - - return keymap - - -def km_time_scrub(_params): - items = [] - keymap = ( - "Time Scrub", - {"space_type": 'EMPTY', "region_type": 'WINDOW'}, - {"items": items}, - ) - - items.extend([ - ("anim.change_frame", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None), - ]) - - return keymap - - -def km_time_scrub_clip(_params): - items = [] - keymap = ( - "Clip Time Scrub", - {"space_type": 'CLIP_EDITOR', "region_type": 'PREVIEW'}, - {"items": items}, - ) - - items.extend([ - ("clip.change_frame", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None), - ]) - - return keymap - +# ------------------------------------------------------------------------------ +# Editor (Graph Editor) def km_graph_editor_generic(_params): items = [] @@ -1637,7 +1650,7 @@ def km_graph_editor_generic(_params): sidebar_key={"type": 'N', "value": 'PRESS'}, ), ("graph.extrapolation_type", {"type": 'E', "value": 'PRESS', "shift": True}, None), - ("anim.channels_find", {"type": 'F', "value": 'PRESS', "ctrl": True}, None), + ("anim.channels_select_filter", {"type": 'F', "value": 'PRESS', "ctrl": True}, None), *_template_items_hide_reveal_actions("graph.hide", "graph.reveal"), ("wm.context_set_enum", {"type": 'TAB', "value": 'PRESS', "ctrl": True}, {"properties": [("data_path", 'area.type'), ("value", 'DOPESHEET_EDITOR')]}), @@ -1777,6 +1790,9 @@ def km_graph_editor(params): return keymap +# ------------------------------------------------------------------------------ +# Editor (Image) + def km_image_generic(params): items = [] keymap = ( @@ -1899,6 +1915,9 @@ def km_image(params): return keymap +# ------------------------------------------------------------------------------ +# Editor (Node) + def km_node_generic(_params): items = [] keymap = ( @@ -2072,6 +2091,9 @@ def km_node_editor(params): return keymap +# ------------------------------------------------------------------------------ +# Editor (Info) + def km_info(params): items = [] keymap = ( @@ -2098,6 +2120,9 @@ def km_info(params): return keymap +# ------------------------------------------------------------------------------ +# Editor (File Browser) + def km_file_browser(params): items = [] keymap = ( @@ -2115,7 +2140,9 @@ def km_file_browser(params): ("file.parent", {"type": 'UP_ARROW', "value": 'PRESS', "alt": True}, None), ("file.previous", {"type": 'LEFT_ARROW', "value": 'PRESS', "alt": True}, None), ("file.next", {"type": 'RIGHT_ARROW', "value": 'PRESS', "alt": True}, None), + # The two refresh operators have polls excluding each other (so only one is available depending on context). ("file.refresh", {"type": 'R', "value": 'PRESS'}, None), + ("file.asset_library_refresh", {"type": 'R', "value": 'PRESS'}, None), ("file.parent", {"type": 'P', "value": 'PRESS'}, None), ("file.previous", {"type": 'BACK_SPACE', "value": 'PRESS'}, None), ("file.next", {"type": 'BACK_SPACE', "value": 'PRESS', "shift": True}, None), @@ -2165,7 +2192,7 @@ def km_file_browser_main(params): if not params.use_file_single_click: items.extend([ ("file.select", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'}, - {"properties": [("open", True), ("deselect_all", not params.legacy)]}), + {"properties": [("open", True), ("deselect_all", not params.legacy)]}), ]) items.extend([ @@ -2248,6 +2275,9 @@ def km_file_browser_buttons(_params): return keymap +# ------------------------------------------------------------------------------ +# Editor (Dope Sheet) + def km_dopesheet_generic(_params): items = [] keymap = ( @@ -2359,7 +2389,7 @@ def km_dopesheet(params): ("action.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None), ("action.view_frame", {"type": 'NUMPAD_0', "value": 'PRESS'}, None), ("anim.channels_editable_toggle", {"type": 'TAB', "value": 'PRESS'}, None), - ("anim.channels_find", {"type": 'F', "value": 'PRESS', "ctrl": True}, None), + ("anim.channels_select_filter", {"type": 'F', "value": 'PRESS', "ctrl": True}, None), ("transform.transform", {"type": 'G', "value": 'PRESS'}, {"properties": [("mode", 'TIME_TRANSLATE')]}), ("transform.transform", {"type": params.select_tweak, "value": 'ANY'}, @@ -2382,6 +2412,9 @@ def km_dopesheet(params): return keymap +# ------------------------------------------------------------------------------ +# Editor (NLA) + def km_nla_generic(_params): items = [] keymap = ( @@ -2400,7 +2433,7 @@ def km_nla_generic(_params): {"properties": [("isolate_action", True)]}), ("nla.tweakmode_exit", {"type": 'TAB', "value": 'PRESS', "shift": True}, {"properties": [("isolate_action", True)]}), - ("anim.channels_find", {"type": 'F', "value": 'PRESS', "ctrl": True}, None), + ("anim.channels_select_filter", {"type": 'F', "value": 'PRESS', "ctrl": True}, None), ]) return keymap @@ -2511,6 +2544,9 @@ def km_nla_editor(params): return keymap +# ------------------------------------------------------------------------------ +# Editor (Text) + def km_text_generic(_params): items = [] keymap = ( @@ -2672,6 +2708,9 @@ def km_text(params): return keymap +# ------------------------------------------------------------------------------ +# Editor (Sequencer) + def km_sequencercommon(params): items = [] keymap = ( @@ -2831,7 +2870,10 @@ def km_sequencerpreview(params): value=params.select_mouse_value_fallback, legacy=params.legacy, ), + *_template_items_select_actions(params, "sequencer.select_all"), + ("sequencer.select_box", {"type": 'B', "value": 'PRESS'}, None), + # View. ("sequencer.view_all_preview", {"type": 'HOME', "value": 'PRESS'}, None), ("sequencer.view_all_preview", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None), ("sequencer.view_ghost_border", {"type": 'O', "value": 'PRESS'}, None), @@ -2849,6 +2891,8 @@ def km_sequencerpreview(params): {"properties": [("ratio", 0.25)]}), ("sequencer.view_zoom_ratio", {"type": 'NUMPAD_8', "value": 'PRESS'}, {"properties": [("ratio", 0.125)]}), + + # Edit. ("transform.translate", {"type": params.select_tweak, "value": 'ANY'}, None), op_tool_optional( ("transform.translate", {"type": 'G', "value": 'PRESS'}, None), @@ -2865,6 +2909,10 @@ def km_sequencerpreview(params): {"properties": [("property", 'SCALE')]}), ("sequencer.strip_transform_clear", {"type": 'R', "alt": True, "value": 'PRESS'}, {"properties": [("property", 'ROTATION')]}), + + ("sequencer.delete", {"type": 'X', "value": 'PRESS'}, None), + ("sequencer.delete", {"type": 'DEL', "value": 'PRESS'}, None), + *_template_items_context_menu("SEQUENCER_MT_preview_context_menu", params.context_menu_event), ]) @@ -2893,6 +2941,9 @@ def km_sequencerpreview(params): return keymap +# ------------------------------------------------------------------------------ +# Editor (Console) + def km_console(_params): items = [] keymap = ( @@ -2958,6 +3009,9 @@ def km_console(_params): return keymap +# ------------------------------------------------------------------------------ +# Editor (Clip) + def km_clip(_params): items = [] keymap = ( @@ -3187,6 +3241,9 @@ def km_clip_dopesheet_editor(_params): return keymap +# ------------------------------------------------------------------------------ +# Editor (Spreadsheet) + def km_spreadsheet_generic(_params): items = [] keymap = ( @@ -3208,7 +3265,6 @@ def km_spreadsheet_generic(_params): # ------------------------------------------------------------------------------ # Animation - def km_frames(params): items = [] keymap = ( @@ -3328,7 +3384,7 @@ def km_animation_channels(params): ("anim.channel_select_keys", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK', "shift": True}, {"properties": [("extend", True)]}), # Find (setting the name filter). - ("anim.channels_find", {"type": 'F', "value": 'PRESS', "ctrl": True}, None), + ("anim.channels_select_filter", {"type": 'F', "value": 'PRESS', "ctrl": True}, None), # Selection. *_template_items_select_actions(params, "anim.channels_select_all"), ("anim.channels_select_box", {"type": 'B', "value": 'PRESS'}, None), @@ -3372,8 +3428,7 @@ def km_animation_channels(params): # ------------------------------------------------------------------------------ -# Modes - +# Object Modes def km_grease_pencil(params): items = [] @@ -4607,17 +4662,6 @@ def _template_view3d_select(*, type, value, legacy): )] -def _template_view3d_select_for_fallback(params, fallback): - if (not fallback) and params.use_fallback_tool_rmb: - # Needed so we have immediate select+tweak when the default select tool is active. - return _template_view3d_select( - type=params.select_mouse, - value=params.select_mouse_value, - legacy=params.legacy, - ) - return [] - - def _template_view3d_gpencil_select(*, type, value, legacy, use_select_mouse=True): return [ *([] if not use_select_mouse else [ @@ -4633,17 +4677,6 @@ def _template_view3d_gpencil_select(*, type, value, legacy, use_select_mouse=Tru ] -def _template_view3d_gpencil_select_for_fallback(params, fallback): - if (not fallback) and params.use_fallback_tool_rmb: - # Needed so we have immediate select+tweak when the default select tool is active. - return _template_view3d_gpencil_select( - type=params.select_mouse, - value=params.select_mouse_value, - legacy=params.legacy, - ) - return [] - - def _template_uv_select(*, type, value, legacy): return [ ("uv.select", {"type": type, "value": value}, @@ -4653,17 +4686,6 @@ def _template_uv_select(*, type, value, legacy): ] -def _template_uv_select_for_fallback(params, fallback): - if (not fallback) and params.use_fallback_tool_rmb: - # Needed so we have immediate select+tweak when the default select tool is active. - return _template_uv_select( - type=params.select_mouse, - value=params.select_mouse_value, - legacy=params.legacy, - ) - return [] - - def _template_sequencer_generic_select(*, type, value, legacy): return [( "sequencer.select", @@ -4686,7 +4708,7 @@ def _template_sequencer_preview_select(*, type, value, legacy): (("center",), ("ctrl",)), # TODO: # (("enumerate",), ("alt",)), - (("toggle", "center"), ("shift", "ctrl")), + (("toggle", "center"), ("shift", "ctrl")), # (("center", "enumerate"), ("ctrl", "alt")), # (("toggle", "enumerate"), ("shift", "alt")), # (("toggle", "center", "enumerate"), ("shift", "ctrl", "alt")), @@ -4709,17 +4731,6 @@ def _template_sequencer_timeline_select(*, type, value, legacy): )] -def _template_sequencer_select_for_fallback(params, fallback): - if (not fallback) and params.use_fallback_tool_rmb: - # Needed so we have immediate select+tweak when the default select tool is active. - return _template_sequencer_generic_select( - type=params.select_mouse, - value=params.select_mouse_value, - legacy=params.legacy, - ) - return [] - - def km_image_paint(params): items = [] keymap = ( @@ -5486,7 +5497,6 @@ def km_object_non_modal(params): # ------------------------------------------------------------------------------ # Modal Maps and Gizmos - def km_eyedropper_modal_map(_params): items = [] keymap = ( @@ -6160,11 +6170,10 @@ def km_popup_toolbar(_params): # ------------------------------------------------------------------------------ -# Tool System Keymaps +# Tool System (Generic) # # Named are auto-generated based on the tool name and it's toolbar. - def km_generic_tool_annotate(params): return ( "Generic Tool: Annotate", @@ -6227,6 +6236,9 @@ def km_image_editor_tool_generic_sample(params): ) +# ------------------------------------------------------------------------------ +# Tool System (UV Editor) + def km_image_editor_tool_uv_cursor(params): return ( "Image Editor Tool: Uv, Cursor", @@ -6261,7 +6273,6 @@ def km_image_editor_tool_uv_select_box(params, *, fallback): "uv.select_box", # Don't use `tool_maybe_tweak_event`, see comment for this slot. **(params.select_tweak_event if fallback else params.tool_tweak_event))), - *_template_uv_select_for_fallback(params, fallback), ]}, ) @@ -6289,7 +6300,6 @@ def km_image_editor_tool_uv_select_lasso(params, *, fallback): *([] if (fallback and not params.use_fallback_tool) else _template_items_tool_select_actions_simple( "uv.select_lasso", **(params.select_tweak_event if fallback else params.tool_tweak_event))), - *_template_uv_select_for_fallback(params, fallback), ]}, ) @@ -6357,6 +6367,9 @@ def km_image_editor_tool_uv_scale(params): ) +# ------------------------------------------------------------------------------ +# Tool System (Node Editor) + def km_node_editor_tool_select(params, *, fallback): return ( _fallback_id("Node Tool: Tweak", fallback), @@ -6377,7 +6390,8 @@ def km_node_editor_tool_select_box(params, *, fallback): {"items": [ *([] if (fallback and not params.use_fallback_tool) else _template_items_tool_select_actions_simple( "node.select_box", - type=params.tool_maybe_tweak, value=params.tool_maybe_tweak_value, + # Don't use `tool_maybe_tweak_event`, see comment for this slot. + **(params.select_tweak_event if fallback else params.tool_tweak_event), properties=[("tweak", True)], )), ]}, @@ -6390,7 +6404,7 @@ def km_node_editor_tool_select_lasso(params, *, fallback): {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'}, {"items": [ *([] if (fallback and not params.use_fallback_tool) else _template_items_tool_select_actions_simple( - "node.select_lasso", type=params.tool_mouse, value='PRESS', + "node.select_lasso", **(params.select_tweak_event if fallback else params.tool_tweak_event), properties=[("tweak", True)])) ]}, ) @@ -6402,7 +6416,11 @@ def km_node_editor_tool_select_circle(params, *, fallback): {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'}, {"items": [ *([] if (fallback and not params.use_fallback_tool) else _template_items_tool_select_actions_simple( - "node.select_circle", type=params.tool_mouse, value='PRESS', + "node.select_circle", + # Why circle select should be used on tweak? + # So that RMB or Shift-RMB is still able to set an element as active. + type=params.select_tweak if fallback else params.tool_mouse, + value='ANY' if fallback else 'PRESS', properties=[("wait_for_input", False)])), ]}, ) @@ -6418,6 +6436,9 @@ def km_node_editor_tool_links_cut(params): ) +# ------------------------------------------------------------------------------ +# Tool System (3D View, Generic) + def km_3d_view_tool_cursor(params): return ( "3D View Tool: Cursor", @@ -6453,7 +6474,6 @@ def km_3d_view_tool_select_box(params, *, fallback): "view3d.select_box", # Don't use `tool_maybe_tweak_event`, see comment for this slot. **(params.select_tweak_event if fallback else params.tool_tweak_event))), - *_template_view3d_select_for_fallback(params, fallback), ]}, ) @@ -6470,7 +6490,6 @@ def km_3d_view_tool_select_circle(params, *, fallback): type=params.select_tweak if fallback else params.tool_mouse, value='ANY' if fallback else 'PRESS', properties=[("wait_for_input", False)])), - # No selection fallback since this operates on press. ]}, ) @@ -6483,7 +6502,6 @@ def km_3d_view_tool_select_lasso(params, *, fallback): *([] if (fallback and not params.use_fallback_tool) else _template_items_tool_select_actions( "view3d.select_lasso", **(params.select_tweak_event if fallback else params.tool_tweak_event))), - *_template_view3d_select_for_fallback(params, fallback), ]} ) @@ -6564,6 +6582,9 @@ def km_3d_view_tool_measure(params): ) +# ------------------------------------------------------------------------------ +# Tool System (3D View, Pose Mode) + def km_3d_view_tool_pose_breakdowner(params): return ( "3D View Tool: Pose, Breakdowner", @@ -6594,6 +6615,9 @@ def km_3d_view_tool_pose_relax(params): ) +# ------------------------------------------------------------------------------ +# Tool System (3D View, Edit Armature) + def km_3d_view_tool_edit_armature_roll(params): return ( "3D View Tool: Edit Armature, Roll", @@ -6649,6 +6673,9 @@ def km_3d_view_tool_edit_armature_extrude_to_cursor(params): ) +# ------------------------------------------------------------------------------ +# Tool System (3D View, Object Mode) + def km_3d_view_tool_interactive_add(params): return ( "3D View Tool: Object, Add Primitive", @@ -6665,6 +6692,9 @@ def km_3d_view_tool_interactive_add(params): ) +# ------------------------------------------------------------------------------ +# Tool System (3D View, Edit Mesh) + def km_3d_view_tool_edit_mesh_extrude_region(params): return ( "3D View Tool: Edit Mesh, Extrude Region", @@ -6931,6 +6961,9 @@ def km_3d_view_tool_edit_mesh_rip_edge(params): ) +# ------------------------------------------------------------------------------ +# Tool System (3D View, Edit Curve) + def km_3d_view_tool_edit_curve_draw(params): return ( "3D View Tool: Edit Curve, Draw", @@ -6998,6 +7031,9 @@ def km_3d_view_tool_edit_curve_extrude_to_cursor(params): ) +# ------------------------------------------------------------------------------ +# Tool System (3D View, Sculpt) + def km_3d_view_tool_sculpt_box_hide(params): return ( "3D View Tool: Sculpt, Box Hide", @@ -7153,6 +7189,9 @@ def km_3d_view_tool_sculpt_face_set_edit(params): ) +# ------------------------------------------------------------------------------ +# Tool System (3D View, Weight Paint) + def km_3d_view_tool_paint_weight_sample_weight(params): return ( "3D View Tool: Paint Weight, Sample Weight", @@ -7183,6 +7222,9 @@ def km_3d_view_tool_paint_weight_gradient(params): ) +# ------------------------------------------------------------------------------ +# Tool System (3D View, Grease Pencil, Paint) + def km_3d_view_tool_paint_gpencil_line(params): return ( "3D View Tool: Paint Gpencil, Line", @@ -7317,6 +7359,9 @@ def km_3d_view_tool_paint_gpencil_interpolate(params): ) +# ------------------------------------------------------------------------------ +# Tool System (3D View, Grease Pencil, Edit) + def km_3d_view_tool_edit_gpencil_select(params, *, fallback): return ( _fallback_id("3D View Tool: Edit Gpencil, Tweak", fallback), @@ -7339,7 +7384,6 @@ def km_3d_view_tool_edit_gpencil_select_box(params, *, fallback): "gpencil.select_box", # Don't use `tool_maybe_tweak_event`, see comment for this slot. **(params.select_tweak_event if fallback else params.tool_tweak_event))), - *_template_view3d_gpencil_select_for_fallback(params, fallback), ]}, ) @@ -7356,7 +7400,6 @@ def km_3d_view_tool_edit_gpencil_select_circle(params, *, fallback): type=params.select_tweak if fallback else params.tool_mouse, value='ANY' if fallback else 'PRESS', properties=[("wait_for_input", False)])), - # No selection fallback since this operates on press. ]}, ) @@ -7369,7 +7412,6 @@ def km_3d_view_tool_edit_gpencil_select_lasso(params, *, fallback): *([] if (fallback and not params.use_fallback_tool) else _template_items_tool_select_actions( "gpencil.select_lasso", **(params.select_tweak_event if fallback else params.tool_tweak_event))), - *_template_view3d_gpencil_select_for_fallback(params, fallback), ]} ) @@ -7455,6 +7497,9 @@ def km_3d_view_tool_edit_gpencil_interpolate(params): ) +# ------------------------------------------------------------------------------ +# Tool System (3D View, Grease Pencil, Sculpt) + def km_3d_view_tool_sculpt_gpencil_select(params): return ( "3D View Tool: Sculpt Gpencil, Tweak", @@ -7490,24 +7535,26 @@ def km_3d_view_tool_sculpt_gpencil_select_lasso(params): ) -def km_sequencer_editor_tool_select(params, *, fallback): +# ------------------------------------------------------------------------------ +# Tool System (Sequencer, Generic) + +def km_sequencer_editor_tool_generic_select(params, *, fallback): return ( _fallback_id("Sequencer Tool: Tweak", fallback), {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'}, {"items": [ - *([] if fallback else - _template_items_tool_select(params, "sequencer.select", "sequencer.cursor_set", extend="toggle") - ), - *([] if (not params.use_fallback_tool_rmb) else _template_sequencer_generic_select( - type=params.select_mouse, value=params.select_mouse_value, legacy=params.legacy)), + *([] if fallback else _template_items_tool_select( + params, "sequencer.select", "sequencer.cursor_set", extend="toggle")), + *([] if (not params.use_fallback_tool_rmb) else _template_sequencer_preview_select( + type=params.select_mouse, value=params.select_mouse_value_fallback, legacy=params.legacy)), # Ignored for preview. *_template_items_change_frame(params), ]}, ) -def km_sequencer_editor_tool_select_box(params, *, fallback): +def km_sequencer_editor_tool_generic_select_box(params, *, fallback): return ( _fallback_id("Sequencer Tool: Select Box", fallback), {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'}, @@ -7517,7 +7564,6 @@ def km_sequencer_editor_tool_select_box(params, *, fallback): "sequencer.select_box", **(params.select_tweak_event if fallback else params.tool_tweak_event), properties=[("tweak", params.select_mouse == 'LEFTMOUSE')])), - *_template_sequencer_select_for_fallback(params, fallback), # RMB select can already set the frame, match the tweak tool. # Ignored for preview. @@ -7527,17 +7573,7 @@ def km_sequencer_editor_tool_select_box(params, *, fallback): ) -def km_sequencer_editor_tool_generic_sample(params): - return ( - "Sequencer Tool: Sample", - {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'}, - {"items": [ - ("sequencer.sample", {"type": params.tool_mouse, "value": 'PRESS'}, None), - ]}, - ) - - -def km_sequencer_editor_tool_cursor(params): +def km_sequencer_editor_tool_generic_cursor(params): return ( "Sequencer Tool: Cursor", {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'}, @@ -7550,6 +7586,9 @@ def km_sequencer_editor_tool_cursor(params): ) +# ------------------------------------------------------------------------------ +# Tool System (Sequencer, Timeline) + def km_sequencer_editor_tool_blade(_params): return ( "Sequencer Tool: Blade", @@ -7566,6 +7605,19 @@ def km_sequencer_editor_tool_blade(_params): ) +# ------------------------------------------------------------------------------ +# Tool System (Sequencer, Preview) + +def km_sequencer_editor_tool_sample(params): + return ( + "Sequencer Tool: Sample", + {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'}, + {"items": [ + ("sequencer.sample", {"type": params.tool_mouse, "value": 'PRESS'}, None), + ]}, + ) + + def km_sequencer_editor_tool_move(params): return ( "Sequencer Tool: Move", @@ -7848,14 +7900,14 @@ def generate_keymaps(params=None): km_3d_view_tool_sculpt_gpencil_select_box(params), km_3d_view_tool_sculpt_gpencil_select_circle(params), km_3d_view_tool_sculpt_gpencil_select_lasso(params), - *(km_sequencer_editor_tool_select(params, fallback=fallback) for fallback in (False, True)), - *(km_sequencer_editor_tool_select_box(params, fallback=fallback) for fallback in (False, True)), + *(km_sequencer_editor_tool_generic_select(params, fallback=fallback) for fallback in (False, True)), + *(km_sequencer_editor_tool_generic_select_box(params, fallback=fallback) for fallback in (False, True)), + km_sequencer_editor_tool_generic_cursor(params), km_sequencer_editor_tool_blade(params), - km_sequencer_editor_tool_generic_sample(params), - km_sequencer_editor_tool_cursor(params), - km_sequencer_editor_tool_scale(params), - km_sequencer_editor_tool_rotate(params), + km_sequencer_editor_tool_sample(params), km_sequencer_editor_tool_move(params), + km_sequencer_editor_tool_rotate(params), + km_sequencer_editor_tool_scale(params), ] # ------------------------------------------------------------------------------ |