Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--release/scripts/modules/bpy/utils/__init__.py5
-rw-r--r--release/scripts/modules/bpy_extras/keyconfig_utils.py1
-rw-r--r--release/scripts/modules/bpy_extras/keyconfig_utils_experimental.py20
-rw-r--r--release/scripts/presets/keyconfig/blender.py12
-rw-r--r--release/scripts/presets/keyconfig/blender_27x.py8659
-rw-r--r--release/scripts/presets/keyconfig/keymap_data/blender_default.py5029
-rw-r--r--release/scripts/startup/bl_ui/space_userpref.py5
-rw-r--r--source/blender/editors/animation/anim_channels_edit.c57
-rw-r--r--source/blender/editors/animation/anim_markers.c48
-rw-r--r--source/blender/editors/animation/anim_ops.c14
-rw-r--r--source/blender/editors/armature/armature_ops.c200
-rw-r--r--source/blender/editors/curve/curve_ops.c130
-rw-r--r--source/blender/editors/gpencil/gpencil_ops.c457
-rw-r--r--source/blender/editors/include/ED_markers.h3
-rw-r--r--source/blender/editors/include/ED_object.h7
-rw-r--r--source/blender/editors/include/ED_transform.h2
-rw-r--r--source/blender/editors/interface/interface_eyedropper.c18
-rw-r--r--source/blender/editors/interface/interface_ops.c29
-rw-r--r--source/blender/editors/interface/view2d_ops.c82
-rw-r--r--source/blender/editors/lattice/lattice_ops.c20
-rw-r--r--source/blender/editors/mask/mask_edit.c101
-rw-r--r--source/blender/editors/mesh/editmesh_knife.c24
-rw-r--r--source/blender/editors/mesh/editmesh_tools.c21
-rw-r--r--source/blender/editors/mesh/mesh_ops.c201
-rw-r--r--source/blender/editors/metaball/mball_ops.c26
-rw-r--r--source/blender/editors/object/object_ops.c209
-rw-r--r--source/blender/editors/physics/physics_ops.c54
-rw-r--r--source/blender/editors/screen/screen_ops.c179
-rw-r--r--source/blender/editors/sculpt_paint/paint_intern.h14
-rw-r--r--source/blender/editors/sculpt_paint/paint_ops.c371
-rw-r--r--source/blender/editors/sculpt_paint/paint_stroke.c4
-rw-r--r--source/blender/editors/sculpt_paint/sculpt.c17
-rw-r--r--source/blender/editors/space_action/action_ops.c162
-rw-r--r--source/blender/editors/space_action/space_action.c2
-rw-r--r--source/blender/editors/space_api/spacetypes.c3
-rw-r--r--source/blender/editors/space_buttons/space_buttons.c10
-rw-r--r--source/blender/editors/space_clip/space_clip.c255
-rw-r--r--source/blender/editors/space_console/space_console.c82
-rw-r--r--source/blender/editors/space_file/space_file.c129
-rw-r--r--source/blender/editors/space_graph/graph_ops.c208
-rw-r--r--source/blender/editors/space_image/space_image.c83
-rw-r--r--source/blender/editors/space_info/space_info.c24
-rw-r--r--source/blender/editors/space_logic/space_logic.c11
-rw-r--r--source/blender/editors/space_nla/nla_ops.c166
-rw-r--r--source/blender/editors/space_node/node_ops.c148
-rw-r--r--source/blender/editors/space_outliner/outliner_ops.c85
-rw-r--r--source/blender/editors/space_sequencer/sequencer_ops.c227
-rw-r--r--source/blender/editors/space_text/space_text.c156
-rw-r--r--source/blender/editors/space_time/time_ops.c10
-rw-r--r--source/blender/editors/space_view3d/view3d_edit.c15
-rw-r--r--source/blender/editors/space_view3d/view3d_fly.c50
-rw-r--r--source/blender/editors/space_view3d/view3d_ops.c294
-rw-r--r--source/blender/editors/space_view3d/view3d_walk.c53
-rw-r--r--source/blender/editors/transform/transform.c56
-rw-r--r--source/blender/editors/transform/transform_ops.c168
-rw-r--r--source/blender/editors/util/CMakeLists.txt2
-rw-r--r--source/blender/editors/uvedit/uvedit_ops.c99
-rw-r--r--source/blender/windowmanager/WM_keymap.h2
-rw-r--r--source/blender/windowmanager/intern/wm_keymap_utils.c4
-rw-r--r--source/blender/windowmanager/intern/wm_operators.c194
60 files changed, 5161 insertions, 13556 deletions
diff --git a/release/scripts/modules/bpy/utils/__init__.py b/release/scripts/modules/bpy/utils/__init__.py
index bb1ba5eb719..eb1b93002a9 100644
--- a/release/scripts/modules/bpy/utils/__init__.py
+++ b/release/scripts/modules/bpy/utils/__init__.py
@@ -261,6 +261,11 @@ def load_scripts(reload_scripts=False, refresh_scripts=False):
_addon_utils.reset_all(reload_scripts=reload_scripts)
del _initialize
+ # Load the default key configuration.
+ filepath = preset_find("blender", "keyconfig")
+ if filepath:
+ keyconfig_set(filepath)
+
# run the active integration preset
filepath = preset_find(_user_preferences.inputs.active_keyconfig,
"keyconfig")
diff --git a/release/scripts/modules/bpy_extras/keyconfig_utils.py b/release/scripts/modules/bpy_extras/keyconfig_utils.py
index 3caf45a72af..1cad1c965b0 100644
--- a/release/scripts/modules/bpy_extras/keyconfig_utils.py
+++ b/release/scripts/modules/bpy_extras/keyconfig_utils.py
@@ -477,4 +477,5 @@ def keyconfig_test(kc):
from .keyconfig_utils_experimental import (
keyconfig_export_as_data,
keyconfig_import_from_data,
+ keyconfig_module_from_preset,
)
diff --git a/release/scripts/modules/bpy_extras/keyconfig_utils_experimental.py b/release/scripts/modules/bpy_extras/keyconfig_utils_experimental.py
index cd82460e8e0..b93da5ec6da 100644
--- a/release/scripts/modules/bpy_extras/keyconfig_utils_experimental.py
+++ b/release/scripts/modules/bpy_extras/keyconfig_utils_experimental.py
@@ -21,6 +21,7 @@
__all__ = (
"keyconfig_export_as_data",
"keyconfig_import_from_data",
+ "keyconfig_module_from_preset",
)
@@ -242,3 +243,22 @@ def keyconfig_import_from_data(name, keyconfig_data):
kmi_props = kmi.properties
for attr, value in kmi_props_data:
kmi_props_setattr(kmi_props, attr, value)
+
+
+def keyconfig_module_from_preset(name, preset_reference_filename=None):
+ import os
+ import importlib.util
+ if preset_reference_filename is not None:
+ preset_path = os.path.join(os.path.dirname(preset_reference_filename), name + ".py")
+ else:
+ preset_path = None
+
+ # External presets may want to re-use other presets too.
+ if not (preset_path and os.path.exists(preset_path)):
+ preset_path = bpy.utils.preset_find(name, "keyconfig")
+
+ # module name isn't used or added to 'sys.modules'.
+ mod_spec = importlib.util.spec_from_file_location("__bl_keymap__", preset_path)
+ mod = importlib.util.module_from_spec(mod_spec)
+ mod_spec.loader.exec_module(mod)
+ return mod
diff --git a/release/scripts/presets/keyconfig/blender.py b/release/scripts/presets/keyconfig/blender.py
new file mode 100644
index 00000000000..66db91d9186
--- /dev/null
+++ b/release/scripts/presets/keyconfig/blender.py
@@ -0,0 +1,12 @@
+
+import os
+from bpy_extras.keyconfig_utils import (
+ keyconfig_import_from_data,
+ keyconfig_module_from_preset,
+)
+
+_mod = keyconfig_module_from_preset(os.path.join("keymap_data", "blender_default"), __file__)
+keyconfig_data = _mod.generate_keymaps()
+
+if __name__ == "__main__":
+ keyconfig_import_from_data("Blender", keyconfig_data)
diff --git a/release/scripts/presets/keyconfig/blender_27x.py b/release/scripts/presets/keyconfig/blender_27x.py
index 3cb6388e43e..2d9ea9d8f44 100644
--- a/release/scripts/presets/keyconfig/blender_27x.py
+++ b/release/scripts/presets/keyconfig/blender_27x.py
@@ -1,8654 +1,11 @@
-keyconfig_data = \
-[("Window",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("wm.window_new", {"type": 'W', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("wm.read_homefile", {"type": 'N', "value": 'PRESS', "ctrl": True}, None),
- ("wm.save_homefile", {"type": 'U', "value": 'PRESS', "ctrl": True}, None),
- ("wm.call_menu",
- {"type": 'O', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("name", 'TOPBAR_MT_file_open_recent'),
- ],
- },
- ),
- ("wm.open_mainfile", {"type": 'O', "value": 'PRESS', "ctrl": True}, None),
- ("wm.open_mainfile", {"type": 'F1', "value": 'PRESS'}, None),
- ("wm.link", {"type": 'O', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("wm.append", {"type": 'F1', "value": 'PRESS', "shift": True}, None),
- ("wm.save_mainfile", {"type": 'S', "value": 'PRESS', "ctrl": True}, None),
- ("wm.save_mainfile", {"type": 'W', "value": 'PRESS', "ctrl": True}, None),
- ("wm.save_as_mainfile", {"type": 'S', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("wm.save_as_mainfile", {"type": 'F2', "value": 'PRESS'}, None),
- ("wm.save_as_mainfile",
- {"type": 'S', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("copy", True),
- ],
- },
- ),
- ("wm.window_fullscreen_toggle", {"type": 'F11', "value": 'PRESS', "alt": True}, None),
- ("wm.quit_blender", {"type": 'Q', "value": 'PRESS', "ctrl": True}, None),
- ("wm.doc_view_manual_ui_context", {"type": 'F1', "value": 'PRESS', "alt": True}, None),
- ("wm.redraw_timer", {"type": 'T', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("wm.debug_menu", {"type": 'D', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("wm.call_menu",
- {"type": 'NDOF_BUTTON_MENU', "value": 'PRESS'},
- {"properties":
- [("name", 'USERPREF_MT_ndof_settings'),
- ],
- },
- ),
- ("wm.search_menu", {"type": 'SPACE', "value": 'PRESS'}, None),
- ("wm.context_set_enum",
- {"type": 'F3', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'area.type'),
- ("value", 'NODE_EDITOR'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'F4', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'area.type'),
- ("value", 'CONSOLE'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'F5', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'area.type'),
- ("value", 'VIEW_3D'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'F6', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'area.type'),
- ("value", 'GRAPH_EDITOR'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'F7', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'area.type'),
- ("value", 'PROPERTIES'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'F8', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'area.type'),
- ("value", 'SEQUENCE_EDITOR'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'F9', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'area.type'),
- ("value", 'OUTLINER'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'F10', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'area.type'),
- ("value", 'IMAGE_EDITOR'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'F11', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'area.type'),
- ("value", 'TEXT_EDITOR'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'F12', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'area.type'),
- ("value", 'DOPESHEET_EDITOR'),
- ],
- },
- ),
- ("wm.context_scale_float",
- {"type": 'NDOF_BUTTON_PLUS', "value": 'PRESS'},
- {"properties":
- [("data_path", 'user_preferences.inputs.ndof_sensitivity'),
- ("value", 1.1),
- ],
- },
- ),
- ("wm.context_scale_float",
- {"type": 'NDOF_BUTTON_MINUS', "value": 'PRESS'},
- {"properties":
- [("data_path", 'user_preferences.inputs.ndof_sensitivity'),
- ("value", 1.0),
- ],
- },
- ),
- ("wm.context_scale_float",
- {"type": 'NDOF_BUTTON_PLUS', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'user_preferences.inputs.ndof_sensitivity'),
- ("value", 1.5),
- ],
- },
- ),
- ("wm.context_scale_float",
- {"type": 'NDOF_BUTTON_MINUS', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'user_preferences.inputs.ndof_sensitivity'),
- ("value", 0.6666667),
- ],
- },
- ),
- ("info.reports_display_update", {"type": 'TIMER_REPORT', "value": 'ANY', "any": True}, None),
- ],
- },
- ),
- ("Screen",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("screen.animation_step", {"type": 'TIMER0', "value": 'ANY', "any": True}, None),
- ("screen.region_blend", {"type": 'TIMERREGION', "value": 'ANY', "any": True}, None),
- ("screen.screen_set",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("delta", 1),
- ],
- },
- ),
- ("screen.screen_set",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("delta", -1),
- ],
- },
- ),
- ("screen.screen_full_area", {"type": 'SPACE', "value": 'PRESS', "shift": True}, None),
- ("screen.screen_full_area",
- {"type": 'SPACE', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("use_hide_panels", True),
- ],
- },
- ),
- ("screen.screenshot", {"type": 'F3', "value": 'PRESS', "ctrl": True}, None),
- ("screen.screencast", {"type": 'F3', "value": 'PRESS', "alt": True}, None),
- ("screen.space_context_cycle",
- {"type": 'TAB', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("direction", 'NEXT'),
- ],
- },
- ),
- ("screen.space_context_cycle",
- {"type": 'TAB', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("direction", 'PREV'),
- ],
- },
- ),
- ("screen.region_quadview", {"type": 'Q', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("screen.repeat_history", {"type": 'F3', "value": 'PRESS'}, None),
- ("screen.repeat_last", {"type": 'R', "value": 'PRESS', "shift": True}, None),
- ("screen.region_flip", {"type": 'F5', "value": 'PRESS'}, None),
- ("screen.redo_last", {"type": 'F6', "value": 'PRESS'}, None),
- ("script.reload", {"type": 'F8', "value": 'PRESS'}, None),
- ("file.execute", {"type": 'RET', "value": 'PRESS'}, None),
- ("file.execute", {"type": 'NUMPAD_ENTER', "value": 'PRESS'}, None),
- ("file.cancel", {"type": 'ESC', "value": 'PRESS'}, None),
- ("ed.undo", {"type": 'Z', "value": 'PRESS', "ctrl": True}, None),
- ("ed.redo", {"type": 'Z', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("ed.undo_history", {"type": 'Z', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("render.render",
- {"type": 'F12', "value": 'PRESS'},
- {"properties":
- [("use_viewport", True),
- ],
- },
- ),
- ("render.render",
- {"type": 'F12', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("animation", True),
- ("use_viewport", True),
- ],
- },
- ),
- ("render.view_cancel", {"type": 'ESC', "value": 'PRESS'}, None),
- ("render.view_show", {"type": 'F11', "value": 'PRESS'}, None),
- ("render.play_rendered_anim", {"type": 'F11', "value": 'PRESS', "ctrl": True}, None),
- ("screen.userpref_show", {"type": 'U', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ],
- },
- ),
- ("User Interface",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("ui.eyedropper_color", {"type": 'E', "value": 'PRESS'}, None),
- ("ui.eyedropper_colorband", {"type": 'E', "value": 'PRESS'}, None),
- ("ui.eyedropper_colorband_point", {"type": 'E', "value": 'PRESS', "alt": True}, None),
- ("ui.eyedropper_id", {"type": 'E', "value": 'PRESS'}, None),
- ("ui.eyedropper_depth", {"type": 'E', "value": 'PRESS'}, None),
- ("ui.copy_data_path_button", {"type": 'C', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("ui.copy_data_path_button",
- {"type": 'C', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
- {"properties":
- [("full_path", True),
- ],
- },
- ),
- ("anim.keyframe_insert_button", {"type": 'I', "value": 'PRESS'}, None),
- ("anim.keyframe_delete_button", {"type": 'I', "value": 'PRESS', "alt": True}, None),
- ("anim.keyframe_clear_button", {"type": 'I', "value": 'PRESS', "shift": True, "alt": True}, None),
- ("anim.driver_button_add", {"type": 'D', "value": 'PRESS', "ctrl": True}, None),
- ("anim.driver_button_remove", {"type": 'D', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("anim.keyingset_button_add", {"type": 'K', "value": 'PRESS'}, None),
- ("anim.keyingset_button_remove", {"type": 'K', "value": 'PRESS', "alt": True}, None),
- ],
- },
- ),
- ("View2D",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("view2d.scroller_activate", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
- ("view2d.scroller_activate", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
- ("view2d.pan", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
- ("view2d.pan", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True}, None),
- ("view2d.pan", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
- ("view2d.scroll_right", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("view2d.scroll_left", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("view2d.scroll_down", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "shift": True}, None),
- ("view2d.scroll_up", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "shift": True}, None),
- ("view2d.ndof", {"type": 'NDOF_MOTION', "value": 'ANY'}, None),
- ("view2d.zoom_out", {"type": 'WHEELOUTMOUSE', "value": 'PRESS'}, None),
- ("view2d.zoom_in", {"type": 'WHEELINMOUSE', "value": 'PRESS'}, None),
- ("view2d.zoom_out", {"type": 'NUMPAD_MINUS', "value": 'PRESS'}, None),
- ("view2d.zoom_in", {"type": 'NUMPAD_PLUS', "value": 'PRESS'}, None),
- ("view2d.zoom", {"type": 'TRACKPADPAN', "value": 'ANY', "ctrl": True}, None),
- ("view2d.smoothview", {"type": 'TIMER1', "value": 'ANY', "any": True}, None),
- ("view2d.scroll_down", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS'}, None),
- ("view2d.scroll_up", {"type": 'WHEELUPMOUSE', "value": 'PRESS'}, None),
- ("view2d.scroll_right", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS'}, None),
- ("view2d.scroll_left", {"type": 'WHEELUPMOUSE', "value": 'PRESS'}, None),
- ("view2d.zoom", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("view2d.zoom", {"type": 'TRACKPADZOOM', "value": 'ANY'}, None),
- ("view2d.zoom_border", {"type": 'B', "value": 'PRESS', "shift": True}, None),
- ],
- },
- ),
- ("Header",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("screen.header_toolbox", {"type": 'RIGHTMOUSE', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("View2D Buttons List",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("view2d.scroller_activate", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
- ("view2d.scroller_activate", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
- ("view2d.pan", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
- ("view2d.pan", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
- ("view2d.scroll_down", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS'}, None),
- ("view2d.scroll_up", {"type": 'WHEELUPMOUSE', "value": 'PRESS'}, None),
- ("view2d.scroll_down",
- {"type": 'PAGE_DOWN', "value": 'PRESS'},
- {"properties":
- [("page", True),
- ],
- },
- ),
- ("view2d.scroll_up",
- {"type": 'PAGE_UP', "value": 'PRESS'},
- {"properties":
- [("page", True),
- ],
- },
- ),
- ("view2d.zoom", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("view2d.zoom", {"type": 'TRACKPADZOOM', "value": 'ANY'}, None),
- ("view2d.zoom", {"type": 'TRACKPADPAN', "value": 'ANY', "ctrl": True}, None),
- ("view2d.zoom_out", {"type": 'NUMPAD_MINUS', "value": 'PRESS'}, None),
- ("view2d.zoom_in", {"type": 'NUMPAD_PLUS', "value": 'PRESS'}, None),
- ("view2d.reset", {"type": 'HOME', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("Frames",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("screen.frame_offset",
- {"type": 'UP_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("delta", 10),
- ],
- },
- ),
- ("screen.frame_offset",
- {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("delta", -10),
- ],
- },
- ),
- ("screen.frame_offset",
- {"type": 'LEFT_ARROW', "value": 'PRESS'},
- {"properties":
- [("delta", -1),
- ],
- },
- ),
- ("screen.frame_offset",
- {"type": 'RIGHT_ARROW', "value": 'PRESS'},
- {"properties":
- [("delta", 1),
- ],
- },
- ),
- ("screen.frame_offset",
- {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("delta", 1),
- ],
- },
- ),
- ("screen.frame_offset",
- {"type": 'WHEELUPMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("delta", -1),
- ],
- },
- ),
- ("screen.frame_jump",
- {"type": 'UP_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("end", True),
- ],
- },
- ),
- ("screen.frame_jump",
- {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("end", False),
- ],
- },
- ),
- ("screen.frame_jump",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("end", True),
- ],
- },
- ),
- ("screen.frame_jump",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("end", False),
- ],
- },
- ),
- ("screen.keyframe_jump",
- {"type": 'UP_ARROW', "value": 'PRESS'},
- {"properties":
- [("next", True),
- ],
- },
- ),
- ("screen.keyframe_jump",
- {"type": 'DOWN_ARROW', "value": 'PRESS'},
- {"properties":
- [("next", False),
- ],
- },
- ),
- ("screen.keyframe_jump",
- {"type": 'MEDIA_LAST', "value": 'PRESS'},
- {"properties":
- [("next", True),
- ],
- },
- ),
- ("screen.keyframe_jump",
- {"type": 'MEDIA_FIRST', "value": 'PRESS'},
- {"properties":
- [("next", False),
- ],
- },
- ),
- ("screen.animation_play", {"type": 'A', "value": 'PRESS', "alt": True}, None),
- ("screen.animation_play",
- {"type": 'A', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("reverse", True),
- ],
- },
- ),
- ("screen.animation_cancel", {"type": 'ESC', "value": 'PRESS'}, None),
- ("screen.animation_play", {"type": 'MEDIA_PLAY', "value": 'PRESS'}, None),
- ("screen.animation_cancel", {"type": 'MEDIA_STOP', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("Property Editor",
- {"space_type": 'PROPERTIES', "region_type": 'WINDOW'},
- {"items":
- [("buttons.toolbox", {"type": 'RIGHTMOUSE', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("Info",
- {"space_type": 'INFO', "region_type": 'WINDOW'},
- {"items":
- [("info.select_pick", {"type": 'SELECTMOUSE', "value": 'PRESS'}, None),
- ("info.select_all_toggle", {"type": 'A', "value": 'PRESS'}, None),
- ("info.select_box", {"type": 'B', "value": 'PRESS'}, None),
- ("info.report_replay", {"type": 'R', "value": 'PRESS'}, None),
- ("info.report_delete", {"type": 'X', "value": 'PRESS'}, None),
- ("info.report_delete", {"type": 'DEL', "value": 'PRESS'}, None),
- ("info.report_copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
- ],
- },
- ),
- ("Outliner",
- {"space_type": 'OUTLINER', "region_type": 'WINDOW'},
- {"items":
- [("outliner.highlight_update", {"type": 'MOUSEMOVE', "value": 'ANY', "any": True}, None),
- ("outliner.item_rename", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'}, None),
- ("outliner.item_activate",
- {"type": 'LEFTMOUSE', "value": 'CLICK'},
- {"properties":
- [("extend", False),
- ("recursive", False),
- ],
- },
- ),
- ("outliner.item_activate",
- {"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True},
- {"properties":
- [("extend", True),
- ("recursive", False),
- ],
- },
- ),
- ("outliner.item_activate",
- {"type": 'LEFTMOUSE', "value": 'CLICK', "ctrl": True},
- {"properties":
- [("extend", False),
- ("recursive", True),
- ],
- },
- ),
- ("outliner.item_activate",
- {"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True, "ctrl": True},
- {"properties":
- [("extend", True),
- ("recursive", True),
- ],
- },
- ),
- ("outliner.select_box", {"type": 'B', "value": 'PRESS'}, None),
- ("outliner.item_openclose",
- {"type": 'RET', "value": 'PRESS'},
- {"properties":
- [("all", False),
- ],
- },
- ),
- ("outliner.item_openclose",
- {"type": 'RET', "value": 'PRESS', "shift": True},
- {"properties":
- [("all", True),
- ],
- },
- ),
- ("outliner.item_rename", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("outliner.operation", {"type": 'RIGHTMOUSE', "value": 'PRESS'}, None),
- ("outliner.item_drag_drop", {"type": 'EVT_TWEAK_L', "value": 'ANY'}, None),
- ("outliner.show_hierarchy", {"type": 'HOME', "value": 'PRESS'}, None),
- ("outliner.show_active", {"type": 'PERIOD', "value": 'PRESS'}, None),
- ("outliner.show_active", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
- ("outliner.scroll_page",
- {"type": 'PAGE_DOWN', "value": 'PRESS'},
- {"properties":
- [("up", False),
- ],
- },
- ),
- ("outliner.scroll_page",
- {"type": 'PAGE_UP', "value": 'PRESS'},
- {"properties":
- [("up", True),
- ],
- },
- ),
- ("outliner.show_one_level", {"type": 'NUMPAD_PLUS', "value": 'PRESS'}, None),
- ("outliner.show_one_level",
- {"type": 'NUMPAD_MINUS', "value": 'PRESS'},
- {"properties":
- [("open", False),
- ],
- },
- ),
- ("outliner.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("outliner.expanded_toggle", {"type": 'A', "value": 'PRESS', "shift": True}, None),
- ("outliner.keyingset_add_selected", {"type": 'K', "value": 'PRESS'}, None),
- ("outliner.keyingset_remove_selected", {"type": 'K', "value": 'PRESS', "alt": True}, None),
- ("anim.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None),
- ("anim.keyframe_delete", {"type": 'I', "value": 'PRESS', "alt": True}, None),
- ("outliner.drivers_add_selected", {"type": 'D', "value": 'PRESS'}, None),
- ("outliner.drivers_delete_selected", {"type": 'D', "value": 'PRESS', "alt": True}, None),
- ("outliner.collection_new", {"type": 'C', "value": 'PRESS'}, None),
- ("outliner.collection_delete", {"type": 'X', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("3D View Generic",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("view3d.properties", {"type": 'N', "value": 'PRESS'}, None),
- ("view3d.toolshelf", {"type": 'T', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("Grease Pencil",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("gpencil.draw",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "key_modifier": 'D'},
- {"properties":
- [("mode", 'DRAW'),
- ("wait_for_input", False),
- ],
- },
- ),
- ("gpencil.draw",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True, "key_modifier": 'D'},
- {"properties":
- [("mode", 'DRAW_STRAIGHT'),
- ("wait_for_input", False),
- ],
- },
- ),
- ("gpencil.draw",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "ctrl": True, "key_modifier": 'D'},
- {"properties":
- [("mode", 'DRAW_POLY'),
- ("wait_for_input", False),
- ],
- },
- ),
- ("gpencil.draw",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "key_modifier": 'D'},
- {"properties":
- [("mode", 'ERASER'),
- ("wait_for_input", False),
- ],
- },
- ),
- ("gpencil.draw",
- {"type": 'ERASER', "value": 'PRESS'},
- {"properties":
- [("mode", 'ERASER'),
- ("wait_for_input", False),
- ],
- },
- ),
- ("gpencil.editmode_toggle", {"type": 'TAB', "value": 'PRESS', "key_modifier": 'D'}, None),
- ("wm.call_menu_pie",
- {"type": 'Q', "value": 'PRESS', "key_modifier": 'D'},
- {"properties":
- [("name", 'GPENCIL_MT_pie_tool_palette'),
- ],
- },
- ),
- ("wm.call_menu_pie",
- {"type": 'W', "value": 'PRESS', "key_modifier": 'D'},
- {"properties":
- [("name", 'GPENCIL_MT_pie_settings_palette'),
- ],
- },
- ),
- ("gpencil.blank_frame_add", {"type": 'B', "value": 'PRESS', "key_modifier": 'D'}, None),
- ("gpencil.active_frames_delete_all", {"type": 'X', "value": 'PRESS', "key_modifier": 'D'}, None),
- ],
- },
- ),
- ("Grease Pencil Stroke Edit Mode",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("gpencil.editmode_toggle", {"type": 'TAB', "value": 'PRESS'}, None),
- ("wm.call_menu_pie",
- {"type": 'E', "value": 'PRESS', "key_modifier": 'D'},
- {"properties":
- [("name", 'GPENCIL_MT_pie_sculpt'),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path_primary", 'user_preferences.edit.grease_pencil_eraser_radius'),
- ],
- },
- ),
- ("gpencil.interpolate", {"type": 'E', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("gpencil.interpolate_sequence", {"type": 'E', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("gpencil.brush_paint",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "key_modifier": 'E'},
- {"properties":
- [("wait_for_input", False),
- ],
- },
- ),
- ("gpencil.brush_paint",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True, "key_modifier": 'E'},
- {"properties":
- [("wait_for_input", False),
- ],
- },
- ),
- ("gpencil.brush_paint",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "key_modifier": 'E'},
- {"properties":
- [("wait_for_input", False),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path_primary", 'tool_settings.gpencil_sculpt.brush.strength'),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS'},
- {"properties":
- [("data_path_primary", 'tool_settings.gpencil_sculpt.brush.size'),
- ],
- },
- ),
- ("gpencil.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("gpencil.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("gpencil.select_circle", {"type": 'C', "value": 'PRESS'}, None),
- ("gpencil.select_box", {"type": 'B', "value": 'PRESS'}, None),
- ("gpencil.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True},
- {"properties":
- [("deselect", False),
- ],
- },
- ),
- ("gpencil.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True},
- {"properties":
- [("deselect", True),
- ],
- },
- ),
- ("gpencil.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True, "alt": True},
- {"properties":
- [("deselect", False),
- ],
- },
- ),
- ("gpencil.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True, "alt": True},
- {"properties":
- [("deselect", True),
- ],
- },
- ),
- ("gpencil.select", {"type": 'SELECTMOUSE', "value": 'PRESS'}, None),
- ("gpencil.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ("toggle", True),
- ],
- },
- ),
- ("gpencil.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("entire_strokes", True),
- ],
- },
- ),
- ("gpencil.select_linked", {"type": 'L', "value": 'PRESS'}, None),
- ("gpencil.select_linked", {"type": 'L', "value": 'PRESS', "ctrl": True}, None),
- ("gpencil.select_grouped", {"type": 'G', "value": 'PRESS', "shift": True}, None),
- ("gpencil.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
- ("gpencil.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
- ("gpencil.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
- ("wm.call_menu",
- {"type": 'X', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_edit_gpencil_delete'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'DEL', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_edit_gpencil_delete'),
- ],
- },
- ),
- ("gpencil.dissolve", {"type": 'X', "value": 'PRESS', "ctrl": True}, None),
- ("gpencil.dissolve", {"type": 'DEL', "value": 'PRESS', "ctrl": True}, None),
- ("gpencil.active_frames_delete_all", {"type": 'X', "value": 'PRESS', "shift": True}, None),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS'},
- {"properties":
- [("name", 'GPENCIL_MT_gpencil_edit_specials'),
- ],
- },
- ),
- ("gpencil.stroke_join", {"type": 'J', "value": 'PRESS', "ctrl": True}, None),
- ("gpencil.stroke_join",
- {"type": 'J', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("type", 'JOINCOPY'),
- ],
- },
- ),
- ("gpencil.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
- ("gpencil.paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
- ("wm.call_menu",
- {"type": 'S', "value": 'PRESS', "shift": True},
- {"properties":
- [("name", 'GPENCIL_MT_snap'),
- ],
- },
- ),
- ("gpencil.convert", {"type": 'C', "value": 'PRESS', "alt": True}, None),
- ("gpencil.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
- ("gpencil.hide",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("unselected", False),
- ],
- },
- ),
- ("gpencil.hide",
- {"type": 'H', "value": 'PRESS', "shift": True},
- {"properties":
- [("unselected", True),
- ],
- },
- ),
- ("gpencil.selection_opacity_toggle", {"type": 'H', "value": 'PRESS', "ctrl": True}, None),
- ("gpencil.layer_isolate", {"type": 'NUMPAD_ASTERIX', "value": 'PRESS'}, None),
- ("gpencil.move_to_layer", {"type": 'M', "value": 'PRESS'}, None),
- ("gpencil.brush_select",
- {"type": 'ONE', "value": 'PRESS'},
- {"properties":
- [("index", 0),
- ],
- },
- ),
- ("gpencil.brush_select",
- {"type": 'TWO', "value": 'PRESS'},
- {"properties":
- [("index", 1),
- ],
- },
- ),
- ("gpencil.brush_select",
- {"type": 'THREE', "value": 'PRESS'},
- {"properties":
- [("index", 2),
- ],
- },
- ),
- ("gpencil.brush_select",
- {"type": 'FOUR', "value": 'PRESS'},
- {"properties":
- [("index", 3),
- ],
- },
- ),
- ("gpencil.brush_select",
- {"type": 'FIVE', "value": 'PRESS'},
- {"properties":
- [("index", 4),
- ],
- },
- ),
- ("gpencil.brush_select",
- {"type": 'SIX', "value": 'PRESS'},
- {"properties":
- [("index", 5),
- ],
- },
- ),
- ("gpencil.brush_select",
- {"type": 'SEVEN', "value": 'PRESS'},
- {"properties":
- [("index", 6),
- ],
- },
- ),
- ("gpencil.brush_select",
- {"type": 'EIGHT', "value": 'PRESS'},
- {"properties":
- [("index", 7),
- ],
- },
- ),
- ("gpencil.brush_select",
- {"type": 'NINE', "value": 'PRESS'},
- {"properties":
- [("index", 8),
- ],
- },
- ),
- ("gpencil.brush_select",
- {"type": 'ZERO', "value": 'PRESS'},
- {"properties":
- [("index", 9),
- ],
- },
- ),
- ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
- ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
- ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
- ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
- ("transform.mirror", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
- ("transform.bend", {"type": 'W', "value": 'PRESS', "shift": True}, 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", 'GPENCIL_SHRINKFATTEN'),
- ],
- },
- ),
- ("wm.context_cycle_enum",
- {"type": 'O', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit_falloff'),
- ("wrap", True),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'O', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit'),
- ("value_1", 'DISABLED'),
- ("value_2", 'ENABLED'),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'O', "value": 'PRESS', "alt": True},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit'),
- ("value_1", 'DISABLED'),
- ("value_2", 'CONNECTED'),
- ],
- },
- ),
- ],
- },
- ),
- ("Face Mask",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("paint.face_select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("paint.face_select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("paint.face_select_hide",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("unselected", False),
- ],
- },
- ),
- ("paint.face_select_hide",
- {"type": 'H', "value": 'PRESS', "shift": True},
- {"properties":
- [("unselected", True),
- ],
- },
- ),
- ("paint.face_select_reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
- ("paint.face_select_linked", {"type": 'L', "value": 'PRESS', "ctrl": True}, None),
- ("paint.face_select_linked_pick",
- {"type": 'L', "value": 'PRESS'},
- {"properties":
- [("deselect", False),
- ],
- },
- ),
- ("paint.face_select_linked_pick",
- {"type": 'L', "value": 'PRESS', "shift": True},
- {"properties":
- [("deselect", True),
- ],
- },
- ),
- ],
- },
- ),
- ("Weight Paint Vertex Selection",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("paint.vert_select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("paint.vert_select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("view3d.select_box", {"type": 'B', "value": 'PRESS'}, None),
- ("view3d.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True},
- {"properties":
- [("deselect", False),
- ],
- },
- ),
- ("view3d.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True},
- {"properties":
- [("deselect", True),
- ],
- },
- ),
- ("view3d.select_circle", {"type": 'C', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("Pose",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("object.parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
- ("wm.call_menu",
- {"type": 'A', "value": 'PRESS', "shift": True},
- {"properties":
- [("name", 'VIEW3D_MT_add'),
- ],
- },
- ),
- ("pose.hide",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("unselected", False),
- ],
- },
- ),
- ("pose.hide",
- {"type": 'H', "value": 'PRESS', "shift": True},
- {"properties":
- [("unselected", True),
- ],
- },
- ),
- ("pose.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
- ("wm.call_menu",
- {"type": 'A', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("name", 'VIEW3D_MT_pose_apply'),
- ],
- },
- ),
- ("pose.rot_clear", {"type": 'R', "value": 'PRESS', "alt": True}, None),
- ("pose.loc_clear", {"type": 'G', "value": 'PRESS', "alt": True}, None),
- ("pose.scale_clear", {"type": 'S', "value": 'PRESS', "alt": True}, None),
- ("pose.quaternions_flip", {"type": 'F', "value": 'PRESS', "alt": True}, None),
- ("pose.rotation_mode_set", {"type": 'R', "value": 'PRESS', "ctrl": True}, None),
- ("pose.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
- ("pose.paste",
- {"type": 'V', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("flipped", False),
- ],
- },
- ),
- ("pose.paste",
- {"type": 'V', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("flipped", True),
- ],
- },
- ),
- ("pose.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("pose.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("pose.select_parent", {"type": 'P', "value": 'PRESS', "shift": True}, None),
- ("pose.select_hierarchy",
- {"type": 'LEFT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("direction", 'PARENT'),
- ("extend", False),
- ],
- },
- ),
- ("pose.select_hierarchy",
- {"type": 'LEFT_BRACKET', "value": 'PRESS', "shift": True},
- {"properties":
- [("direction", 'PARENT'),
- ("extend", True),
- ],
- },
- ),
- ("pose.select_hierarchy",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("direction", 'CHILD'),
- ("extend", False),
- ],
- },
- ),
- ("pose.select_hierarchy",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS', "shift": True},
- {"properties":
- [("direction", 'CHILD'),
- ("extend", True),
- ],
- },
- ),
- ("pose.select_linked", {"type": 'L', "value": 'PRESS'}, None),
- ("pose.select_grouped", {"type": 'G', "value": 'PRESS', "shift": True}, None),
- ("pose.select_mirror", {"type": 'F', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("pose.constraint_add_with_targets", {"type": 'C', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("pose.constraints_clear", {"type": 'C', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("pose.ik_add", {"type": 'I', "value": 'PRESS', "shift": True}, None),
- ("pose.ik_clear", {"type": 'I', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("wm.call_menu",
- {"type": 'G', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("name", 'VIEW3D_MT_pose_group'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS', "shift": True},
- {"properties":
- [("name", 'VIEW3D_MT_bone_options_toggle'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("name", 'VIEW3D_MT_bone_options_enable'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS', "alt": True},
- {"properties":
- [("name", 'VIEW3D_MT_bone_options_disable'),
- ],
- },
- ),
- ("armature.layers_show_all", {"type": 'ACCENT_GRAVE', "value": 'PRESS', "ctrl": True}, None),
- ("armature.armature_layers", {"type": 'M', "value": 'PRESS', "shift": True}, None),
- ("pose.bone_layers", {"type": 'M', "value": 'PRESS'}, None),
- ("wm.context_toggle",
- {"type": 'Z', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.overlay.show_bone_select'),
- ],
- },
- ),
- ("transform.transform",
- {"type": 'S', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("mode", 'BONE_SIZE'),
- ],
- },
- ),
- ("anim.keyframe_insert_menu", {"type": 'I', "value": 'PRESS'}, None),
- ("anim.keyframe_delete_v3d", {"type": 'I', "value": 'PRESS', "alt": True}, None),
- ("anim.keying_set_active_set", {"type": 'I', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
- ("poselib.browse_interactive", {"type": 'L', "value": 'PRESS', "ctrl": True}, None),
- ("poselib.pose_add", {"type": 'L', "value": 'PRESS', "shift": True}, None),
- ("poselib.pose_remove", {"type": 'L', "value": 'PRESS', "alt": True}, None),
- ("poselib.pose_rename", {"type": 'L', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("pose.push", {"type": 'E', "value": 'PRESS', "ctrl": True}, None),
- ("pose.relax", {"type": 'E', "value": 'PRESS', "alt": True}, None),
- ("pose.breakdown", {"type": 'E', "value": 'PRESS', "shift": True}, None),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_pose_specials'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'P', "value": 'PRESS', "alt": True},
- {"properties":
- [("name", 'VIEW3D_MT_pose_propagate'),
- ],
- },
- ),
- ],
- },
- ),
- ("Object Mode",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("wm.context_cycle_enum",
- {"type": 'O', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit_falloff'),
- ("wrap", True),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'O', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.use_proportional_edit_objects'),
- ],
- },
- ),
- ("object.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("object.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("object.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
- ("object.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
- ("object.select_linked", {"type": 'L', "value": 'PRESS', "shift": True}, None),
- ("object.select_grouped", {"type": 'G', "value": 'PRESS', "shift": True}, None),
- ("object.select_mirror", {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("object.select_hierarchy",
- {"type": 'LEFT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("direction", 'PARENT'),
- ("extend", False),
- ],
- },
- ),
- ("object.select_hierarchy",
- {"type": 'LEFT_BRACKET', "value": 'PRESS', "shift": True},
- {"properties":
- [("direction", 'PARENT'),
- ("extend", True),
- ],
- },
- ),
- ("object.select_hierarchy",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("direction", 'CHILD'),
- ("extend", False),
- ],
- },
- ),
- ("object.select_hierarchy",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS', "shift": True},
- {"properties":
- [("direction", 'CHILD'),
- ("extend", True),
- ],
- },
- ),
- ("object.parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
- ("object.parent_no_inverse_set", {"type": 'P', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("object.parent_clear", {"type": 'P', "value": 'PRESS', "alt": True}, None),
- ("object.track_set", {"type": 'T', "value": 'PRESS', "ctrl": True}, None),
- ("object.track_clear", {"type": 'T', "value": 'PRESS', "alt": True}, None),
- ("object.constraint_add_with_targets", {"type": 'C', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("object.constraints_clear", {"type": 'C', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("object.location_clear",
- {"type": 'G', "value": 'PRESS', "alt": True},
- {"properties":
- [("clear_delta", False),
- ],
- },
- ),
- ("object.rotation_clear",
- {"type": 'R', "value": 'PRESS', "alt": True},
- {"properties":
- [("clear_delta", False),
- ],
- },
- ),
- ("object.scale_clear",
- {"type": 'S', "value": 'PRESS', "alt": True},
- {"properties":
- [("clear_delta", False),
- ],
- },
- ),
- ("object.origin_clear", {"type": 'O', "value": 'PRESS', "alt": True}, None),
- ("object.delete",
- {"type": 'X', "value": 'PRESS'},
- {"properties":
- [("use_global", False),
- ],
- },
- ),
- ("object.delete",
- {"type": 'X', "value": 'PRESS', "shift": True},
- {"properties":
- [("use_global", True),
- ],
- },
- ),
- ("object.delete",
- {"type": 'DEL', "value": 'PRESS'},
- {"properties":
- [("use_global", False),
- ],
- },
- ),
- ("object.delete",
- {"type": 'DEL', "value": 'PRESS', "shift": True},
- {"properties":
- [("use_global", True),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'A', "value": 'PRESS', "shift": True},
- {"properties":
- [("name", 'VIEW3D_MT_add'),
- ],
- },
- ),
- ("object.duplicates_make_real", {"type": 'A', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("wm.call_menu",
- {"type": 'A', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("name", 'VIEW3D_MT_object_apply'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'U', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_make_single_user'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'L', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("name", 'VIEW3D_MT_make_links'),
- ],
- },
- ),
- ("object.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
- ("object.duplicate_move_linked", {"type": 'D', "value": 'PRESS', "alt": True}, None),
- ("object.join", {"type": 'J', "value": 'PRESS', "ctrl": True}, None),
- ("object.convert", {"type": 'C', "value": 'PRESS', "alt": True}, None),
- ("object.proxy_make", {"type": 'P', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("object.make_local", {"type": 'L', "value": 'PRESS'}, None),
- ("anim.keyframe_insert_menu", {"type": 'I', "value": 'PRESS'}, None),
- ("anim.keyframe_delete_v3d", {"type": 'I', "value": 'PRESS', "alt": True}, None),
- ("anim.keying_set_active_set", {"type": 'I', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
- ("collection.create", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
- ("collection.objects_remove", {"type": 'G', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("collection.objects_remove_all", {"type": 'G', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
- ("collection.objects_add_active", {"type": 'G', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("collection.objects_remove_active", {"type": 'G', "value": 'PRESS', "shift": True, "alt": True}, None),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_object_specials'),
- ],
- },
- ),
- ("object.data_transfer", {"type": 'T', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("object.subdivision_set",
- {"type": 'ZERO', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 0),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'ONE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 1),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'TWO', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 2),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'THREE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 3),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'FOUR', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 4),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'FIVE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 5),
- ],
- },
- ),
- ("object.move_to_collection", {"type": 'M', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("Paint Curve",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("paintcurve.add_point_slide", {"type": 'ACTIONMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("paintcurve.select", {"type": 'SELECTMOUSE', "value": 'PRESS'}, None),
- ("paintcurve.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("paintcurve.slide", {"type": 'ACTIONMOUSE', "value": 'PRESS'}, None),
- ("paintcurve.slide",
- {"type": 'ACTIONMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("align", True),
- ],
- },
- ),
- ("paintcurve.select",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("toggle", True),
- ],
- },
- ),
- ("paintcurve.cursor", {"type": 'ACTIONMOUSE', "value": 'PRESS'}, None),
- ("paintcurve.delete_point", {"type": 'X', "value": 'PRESS'}, None),
- ("paintcurve.delete_point", {"type": 'DEL', "value": 'PRESS'}, None),
- ("paintcurve.draw", {"type": 'RET', "value": 'PRESS'}, None),
- ("paintcurve.draw", {"type": 'NUMPAD_ENTER', "value": 'PRESS'}, None),
- ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
- ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
- ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
- ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("Curve",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("wm.call_menu",
- {"type": 'A', "value": 'PRESS', "shift": True},
- {"properties":
- [("name", 'TOPBAR_MT_edit_curve_add'),
- ],
- },
- ),
- ("curve.handle_type_set", {"type": 'V', "value": 'PRESS'}, None),
- ("curve.vertex_add", {"type": 'ACTIONMOUSE', "value": 'CLICK', "ctrl": True}, None),
- ("curve.draw",
- {"type": 'ACTIONMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("wait_for_input", False),
- ],
- },
- ),
- ("curve.draw",
- {"type": 'PEN', "value": 'PRESS', "shift": True},
- {"properties":
- [("wait_for_input", False),
- ],
- },
- ),
- ("curve.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("curve.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("curve.select_row", {"type": 'R', "value": 'PRESS', "shift": True}, None),
- ("curve.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
- ("curve.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
- ("curve.select_linked", {"type": 'L', "value": 'PRESS', "ctrl": True}, None),
- ("curve.select_similar", {"type": 'G', "value": 'PRESS', "shift": True}, None),
- ("curve.select_linked_pick",
- {"type": 'L', "value": 'PRESS'},
- {"properties":
- [("deselect", False),
- ],
- },
- ),
- ("curve.select_linked_pick",
- {"type": 'L', "value": 'PRESS', "shift": True},
- {"properties":
- [("deselect", True),
- ],
- },
- ),
- ("curve.shortest_path_pick", {"type": 'SELECTMOUSE', "value": 'CLICK', "ctrl": True}, None),
- ("curve.separate", {"type": 'P', "value": 'PRESS'}, None),
- ("curve.split", {"type": 'Y', "value": 'PRESS'}, None),
- ("curve.extrude_move", {"type": 'E', "value": 'PRESS'}, None),
- ("curve.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
- ("curve.make_segment", {"type": 'F', "value": 'PRESS'}, None),
- ("curve.cyclic_toggle", {"type": 'C', "value": 'PRESS', "alt": True}, None),
- ("wm.call_menu",
- {"type": 'X', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_edit_curve_delete'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'DEL', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_edit_curve_delete'),
- ],
- },
- ),
- ("curve.dissolve_verts", {"type": 'X', "value": 'PRESS', "ctrl": True}, None),
- ("curve.dissolve_verts", {"type": 'DEL', "value": 'PRESS', "ctrl": True}, None),
- ("curve.tilt_clear", {"type": 'T', "value": 'PRESS', "alt": True}, None),
- ("transform.tilt", {"type": 'T', "value": 'PRESS', "ctrl": True}, None),
- ("transform.transform",
- {"type": 'S', "value": 'PRESS', "alt": True},
- {"properties":
- [("mode", 'CURVE_SHRINKFATTEN'),
- ],
- },
- ),
- ("curve.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
- ("curve.hide",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("unselected", False),
- ],
- },
- ),
- ("curve.hide",
- {"type": 'H', "value": 'PRESS', "shift": True},
- {"properties":
- [("unselected", True),
- ],
- },
- ),
- ("curve.normals_make_consistent", {"type": 'N', "value": 'PRESS', "ctrl": True}, None),
- ("object.vertex_parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_edit_curve_specials'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'H', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("name", 'VIEW3D_MT_hook'),
- ],
- },
- ),
- ("wm.context_cycle_enum",
- {"type": 'O', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit_falloff'),
- ("wrap", True),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'O', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit'),
- ("value_1", 'DISABLED'),
- ("value_2", 'ENABLED'),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'O', "value": 'PRESS', "alt": True},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit'),
- ("value_1", 'DISABLED'),
- ("value_2", 'CONNECTED'),
- ],
- },
- ),
- ],
- },
- ),
- ("Image Paint",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("paint.image_paint",
- {"type": 'LEFTMOUSE', "value": 'PRESS'},
- {"properties":
- [("mode", 'NORMAL'),
- ],
- },
- ),
- ("paint.image_paint",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'INVERT'),
- ],
- },
- ),
- ("paint.brush_colors_flip", {"type": 'X', "value": 'PRESS'}, None),
- ("paint.grab_clone", {"type": 'RIGHTMOUSE', "value": 'PRESS'}, None),
- ("paint.sample_color", {"type": 'S', "value": 'PRESS'}, None),
- ("brush.active_index_set",
- {"type": 'ONE', "value": 'PRESS'},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 0),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'TWO', "value": 'PRESS'},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 1),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'THREE', "value": 'PRESS'},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 2),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FOUR', "value": 'PRESS'},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 3),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FIVE', "value": 'PRESS'},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 4),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SIX', "value": 'PRESS'},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 5),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SEVEN', "value": 'PRESS'},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 6),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'EIGHT', "value": 'PRESS'},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 7),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'NINE', "value": 'PRESS'},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 8),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'ZERO', "value": 'PRESS'},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 9),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'ONE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 10),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'TWO', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 11),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'THREE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 12),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FOUR', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 13),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FIVE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 14),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SIX', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 15),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SEVEN', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 16),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'EIGHT', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 17),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'NINE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 18),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'ZERO', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'image_paint'),
- ("index", 19),
- ],
- },
- ),
- ("brush.scale_size",
- {"type": 'LEFT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("scalar", 0.9),
- ],
- },
- ),
- ("brush.scale_size",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("scalar", 1.1111112),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS'},
- {"properties":
- [("data_path_primary", 'tool_settings.image_paint.brush.size'),
- ("data_path_secondary", 'tool_settings.unified_paint_settings.size'),
- ("use_secondary", 'tool_settings.unified_paint_settings.use_unified_size'),
- ("rotation_path", 'tool_settings.image_paint.brush.mask_texture_slot.angle'),
- ("color_path", 'tool_settings.image_paint.brush.cursor_color_add'),
- ("fill_color_path", 'tool_settings.image_paint.brush.color'),
- ("fill_color_override_path", 'tool_settings.unified_paint_settings.color'),
- ("fill_color_override_test_path", 'tool_settings.unified_paint_settings.use_unified_color'),
- ("zoom_path", 'space_data.zoom'),
- ("image_id", 'tool_settings.image_paint.brush'),
- ("secondary_tex", True),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path_primary", 'tool_settings.image_paint.brush.strength'),
- ("data_path_secondary", 'tool_settings.unified_paint_settings.strength'),
- ("use_secondary", 'tool_settings.unified_paint_settings.use_unified_strength'),
- ("rotation_path", 'tool_settings.image_paint.brush.mask_texture_slot.angle'),
- ("color_path", 'tool_settings.image_paint.brush.cursor_color_add'),
- ("fill_color_path", 'tool_settings.image_paint.brush.color'),
- ("fill_color_override_path", 'tool_settings.unified_paint_settings.color'),
- ("fill_color_override_test_path", 'tool_settings.unified_paint_settings.use_unified_color'),
- ("zoom_path", ''),
- ("image_id", 'tool_settings.image_paint.brush'),
- ("secondary_tex", True),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path_primary", 'tool_settings.image_paint.brush.texture_slot.angle'),
- ("data_path_secondary", ''),
- ("use_secondary", ''),
- ("rotation_path", 'tool_settings.image_paint.brush.texture_slot.angle'),
- ("color_path", 'tool_settings.image_paint.brush.cursor_color_add'),
- ("fill_color_path", 'tool_settings.image_paint.brush.color'),
- ("fill_color_override_path", 'tool_settings.unified_paint_settings.color'),
- ("fill_color_override_test_path", 'tool_settings.unified_paint_settings.use_unified_color'),
- ("zoom_path", ''),
- ("image_id", 'tool_settings.image_paint.brush'),
- ("secondary_tex", False),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("data_path_primary", 'tool_settings.image_paint.brush.mask_texture_slot.angle'),
- ("data_path_secondary", ''),
- ("use_secondary", ''),
- ("rotation_path", 'tool_settings.image_paint.brush.mask_texture_slot.angle'),
- ("color_path", 'tool_settings.image_paint.brush.cursor_color_add'),
- ("fill_color_path", 'tool_settings.image_paint.brush.color'),
- ("fill_color_override_path", 'tool_settings.unified_paint_settings.color'),
- ("fill_color_override_test_path", 'tool_settings.unified_paint_settings.use_unified_color'),
- ("zoom_path", ''),
- ("image_id", 'tool_settings.image_paint.brush'),
- ("secondary_tex", True),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS'},
- {"properties":
- [("mode", 'TRANSLATION'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'SCALE'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'ROTATION'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("mode", 'TRANSLATION'),
- ("texmode", 'SECONDARY'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("mode", 'SCALE'),
- ("texmode", 'SECONDARY'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("mode", 'ROTATION'),
- ("texmode", 'SECONDARY'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'M', "value": 'PRESS'},
- {"properties":
- [("data_path", 'image_paint_object.data.use_paint_mask'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'S', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.image_paint.brush.use_smooth_stroke'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'R', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_angle_control'),
- ],
- },
- ),
- ("wm.context_menu_enum",
- {"type": 'E', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.image_paint.brush.stroke_method'),
- ],
- },
- ),
- ],
- },
- ),
- ("Vertex Paint",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("paint.vertex_paint", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
- ("paint.brush_colors_flip", {"type": 'X', "value": 'PRESS'}, None),
- ("paint.sample_color", {"type": 'S', "value": 'PRESS'}, None),
- ("paint.vertex_color_set", {"type": 'K', "value": 'PRESS', "shift": True}, None),
- ("brush.active_index_set",
- {"type": 'ONE', "value": 'PRESS'},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 0),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'TWO', "value": 'PRESS'},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 1),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'THREE', "value": 'PRESS'},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 2),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FOUR', "value": 'PRESS'},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 3),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FIVE', "value": 'PRESS'},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 4),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SIX', "value": 'PRESS'},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 5),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SEVEN', "value": 'PRESS'},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 6),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'EIGHT', "value": 'PRESS'},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 7),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'NINE', "value": 'PRESS'},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 8),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'ZERO', "value": 'PRESS'},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 9),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'ONE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 10),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'TWO', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 11),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'THREE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 12),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FOUR', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 13),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FIVE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 14),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SIX', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 15),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SEVEN', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 16),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'EIGHT', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 17),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'NINE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 18),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'ZERO', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'vertex_paint'),
- ("index", 19),
- ],
- },
- ),
- ("brush.scale_size",
- {"type": 'LEFT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("scalar", 0.9),
- ],
- },
- ),
- ("brush.scale_size",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("scalar", 1.1111112),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS'},
- {"properties":
- [("data_path_primary", 'tool_settings.vertex_paint.brush.size'),
- ("data_path_secondary", 'tool_settings.unified_paint_settings.size'),
- ("use_secondary", 'tool_settings.unified_paint_settings.use_unified_size'),
- ("rotation_path", 'tool_settings.vertex_paint.brush.texture_slot.angle'),
- ("color_path", 'tool_settings.vertex_paint.brush.cursor_color_add'),
- ("fill_color_path", 'tool_settings.vertex_paint.brush.color'),
- ("fill_color_override_path", 'tool_settings.unified_paint_settings.color'),
- ("fill_color_override_test_path", 'tool_settings.unified_paint_settings.use_unified_color'),
- ("zoom_path", ''),
- ("image_id", 'tool_settings.vertex_paint.brush'),
- ("secondary_tex", False),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path_primary", 'tool_settings.vertex_paint.brush.strength'),
- ("data_path_secondary", 'tool_settings.unified_paint_settings.strength'),
- ("use_secondary", 'tool_settings.unified_paint_settings.use_unified_strength'),
- ("rotation_path", 'tool_settings.vertex_paint.brush.texture_slot.angle'),
- ("color_path", 'tool_settings.vertex_paint.brush.cursor_color_add'),
- ("fill_color_path", 'tool_settings.vertex_paint.brush.color'),
- ("fill_color_override_path", 'tool_settings.unified_paint_settings.color'),
- ("fill_color_override_test_path", 'tool_settings.unified_paint_settings.use_unified_color'),
- ("zoom_path", ''),
- ("image_id", 'tool_settings.vertex_paint.brush'),
- ("secondary_tex", False),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path_primary", 'tool_settings.vertex_paint.brush.texture_slot.angle'),
- ("data_path_secondary", ''),
- ("use_secondary", ''),
- ("rotation_path", 'tool_settings.vertex_paint.brush.texture_slot.angle'),
- ("color_path", 'tool_settings.vertex_paint.brush.cursor_color_add'),
- ("fill_color_path", 'tool_settings.vertex_paint.brush.color'),
- ("fill_color_override_path", 'tool_settings.unified_paint_settings.color'),
- ("fill_color_override_test_path", 'tool_settings.unified_paint_settings.use_unified_color'),
- ("zoom_path", ''),
- ("image_id", 'tool_settings.vertex_paint.brush'),
- ("secondary_tex", False),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS'},
- {"properties":
- [("mode", 'TRANSLATION'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'SCALE'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'ROTATION'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("mode", 'TRANSLATION'),
- ("texmode", 'SECONDARY'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("mode", 'SCALE'),
- ("texmode", 'SECONDARY'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("mode", 'ROTATION'),
- ("texmode", 'SECONDARY'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'M', "value": 'PRESS'},
- {"properties":
- [("data_path", 'vertex_paint_object.data.use_paint_mask'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'S', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.vertex_paint.brush.use_smooth_stroke'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'R', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_angle_control'),
- ],
- },
- ),
- ("wm.context_menu_enum",
- {"type": 'E', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.vertex_paint.brush.stroke_method'),
- ],
- },
- ),
- ],
- },
- ),
- ("Weight Paint",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("paint.weight_paint", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
- ("paint.weight_sample", {"type": 'ACTIONMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("paint.weight_sample_group", {"type": 'ACTIONMOUSE', "value": 'PRESS', "shift": True}, None),
- ("paint.weight_gradient",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("type", 'LINEAR'),
- ],
- },
- ),
- ("paint.weight_gradient",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("type", 'RADIAL'),
- ],
- },
- ),
- ("paint.weight_set", {"type": 'K', "value": 'PRESS', "shift": True}, None),
- ("brush.active_index_set",
- {"type": 'ONE', "value": 'PRESS'},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 0),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'TWO', "value": 'PRESS'},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 1),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'THREE', "value": 'PRESS'},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 2),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FOUR', "value": 'PRESS'},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 3),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FIVE', "value": 'PRESS'},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 4),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SIX', "value": 'PRESS'},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 5),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SEVEN', "value": 'PRESS'},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 6),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'EIGHT', "value": 'PRESS'},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 7),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'NINE', "value": 'PRESS'},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 8),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'ZERO', "value": 'PRESS'},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 9),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'ONE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 10),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'TWO', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 11),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'THREE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 12),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FOUR', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 13),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FIVE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 14),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SIX', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 15),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SEVEN', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 16),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'EIGHT', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 17),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'NINE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 18),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'ZERO', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'weight_paint'),
- ("index", 19),
- ],
- },
- ),
- ("brush.scale_size",
- {"type": 'LEFT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("scalar", 0.9),
- ],
- },
- ),
- ("brush.scale_size",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("scalar", 1.1111112),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS'},
- {"properties":
- [("data_path_primary", 'tool_settings.weight_paint.brush.size'),
- ("data_path_secondary", 'tool_settings.unified_paint_settings.size'),
- ("use_secondary", 'tool_settings.unified_paint_settings.use_unified_size'),
- ("rotation_path", 'tool_settings.weight_paint.brush.texture_slot.angle'),
- ("color_path", 'tool_settings.weight_paint.brush.cursor_color_add'),
- ("fill_color_path", ''),
- ("fill_color_override_path", ''),
- ("fill_color_override_test_path", ''),
- ("zoom_path", ''),
- ("image_id", 'tool_settings.weight_paint.brush'),
- ("secondary_tex", False),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path_primary", 'tool_settings.weight_paint.brush.strength'),
- ("data_path_secondary", 'tool_settings.unified_paint_settings.strength'),
- ("use_secondary", 'tool_settings.unified_paint_settings.use_unified_strength'),
- ("rotation_path", 'tool_settings.weight_paint.brush.texture_slot.angle'),
- ("color_path", 'tool_settings.weight_paint.brush.cursor_color_add'),
- ("fill_color_path", ''),
- ("fill_color_override_path", ''),
- ("fill_color_override_test_path", ''),
- ("zoom_path", ''),
- ("image_id", 'tool_settings.weight_paint.brush'),
- ("secondary_tex", False),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'W', "value": 'PRESS'},
- {"properties":
- [("data_path_primary", 'tool_settings.weight_paint.brush.weight'),
- ("data_path_secondary", 'tool_settings.unified_paint_settings.weight'),
- ("use_secondary", 'tool_settings.unified_paint_settings.use_unified_weight'),
- ("rotation_path", 'tool_settings.weight_paint.brush.texture_slot.angle'),
- ("color_path", 'tool_settings.weight_paint.brush.cursor_color_add'),
- ("fill_color_path", ''),
- ("fill_color_override_path", ''),
- ("fill_color_override_test_path", ''),
- ("zoom_path", ''),
- ("image_id", 'tool_settings.weight_paint.brush'),
- ("secondary_tex", False),
- ],
- },
- ),
- ("wm.context_menu_enum",
- {"type": 'E', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.vertex_paint.brush.stroke_method'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'M', "value": 'PRESS'},
- {"properties":
- [("data_path", 'weight_paint_object.data.use_paint_mask'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'V', "value": 'PRESS'},
- {"properties":
- [("data_path", 'weight_paint_object.data.use_paint_mask_vertex'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'S', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.weight_paint.brush.use_smooth_stroke'),
- ],
- },
- ),
- ],
- },
- ),
- ("Sculpt",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("sculpt.brush_stroke",
- {"type": 'LEFTMOUSE', "value": 'PRESS'},
- {"properties":
- [("mode", 'NORMAL'),
- ],
- },
- ),
- ("sculpt.brush_stroke",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'INVERT'),
- ],
- },
- ),
- ("sculpt.brush_stroke",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'SMOOTH'),
- ],
- },
- ),
- ("paint.hide_show",
- {"type": 'H', "value": 'PRESS', "shift": True},
- {"properties":
- [("action", 'SHOW'),
- ("area", 'INSIDE'),
- ],
- },
- ),
- ("paint.hide_show",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("action", 'HIDE'),
- ("area", 'INSIDE'),
- ],
- },
- ),
- ("paint.hide_show",
- {"type": 'H', "value": 'PRESS', "alt": True},
- {"properties":
- [("action", 'SHOW'),
- ("area", 'ALL'),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'ZERO', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 0),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'ONE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 1),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'TWO', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 2),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'THREE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 3),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'FOUR', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 4),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'FIVE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 5),
- ],
- },
- ),
- ("paint.mask_flood_fill",
- {"type": 'M', "value": 'PRESS', "alt": True},
- {"properties":
- [("mode", 'VALUE'),
- ("value", 0.0),
- ],
- },
- ),
- ("paint.mask_flood_fill",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'INVERT'),
- ],
- },
- ),
- ("paint.mask_lasso_gesture", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("wm.context_toggle",
- {"type": 'M', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'scene.tool_settings.sculpt.show_mask'),
- ],
- },
- ),
- ("sculpt.dynamic_topology_toggle", {"type": 'D', "value": 'PRESS', "ctrl": True}, None),
- ("sculpt.set_detail_size", {"type": 'D', "value": 'PRESS', "shift": True}, None),
- ("object.subdivision_set",
- {"type": 'PAGE_UP', "value": 'PRESS'},
- {"properties":
- [("level", 1),
- ("relative", True),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'PAGE_DOWN', "value": 'PRESS'},
- {"properties":
- [("level", -1),
- ("relative", True),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'ONE', "value": 'PRESS'},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 0),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'TWO', "value": 'PRESS'},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 1),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'THREE', "value": 'PRESS'},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 2),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FOUR', "value": 'PRESS'},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 3),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FIVE', "value": 'PRESS'},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 4),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SIX', "value": 'PRESS'},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 5),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SEVEN', "value": 'PRESS'},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 6),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'EIGHT', "value": 'PRESS'},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 7),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'NINE', "value": 'PRESS'},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 8),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'ZERO', "value": 'PRESS'},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 9),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'ONE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 10),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'TWO', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 11),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'THREE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 12),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FOUR', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 13),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'FIVE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 14),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SIX', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 15),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'SEVEN', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 16),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'EIGHT', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 17),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'NINE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 18),
- ],
- },
- ),
- ("brush.active_index_set",
- {"type": 'ZERO', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'sculpt'),
- ("index", 19),
- ],
- },
- ),
- ("brush.scale_size",
- {"type": 'LEFT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("scalar", 0.9),
- ],
- },
- ),
- ("brush.scale_size",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("scalar", 1.1111112),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS'},
- {"properties":
- [("data_path_primary", 'tool_settings.sculpt.brush.size'),
- ("data_path_secondary", 'tool_settings.unified_paint_settings.size'),
- ("use_secondary", 'tool_settings.unified_paint_settings.use_unified_size'),
- ("rotation_path", 'tool_settings.sculpt.brush.texture_slot.angle'),
- ("color_path", 'tool_settings.sculpt.brush.cursor_color_add'),
- ("fill_color_path", ''),
- ("fill_color_override_path", ''),
- ("fill_color_override_test_path", ''),
- ("zoom_path", ''),
- ("image_id", 'tool_settings.sculpt.brush'),
- ("secondary_tex", False),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path_primary", 'tool_settings.sculpt.brush.strength'),
- ("data_path_secondary", 'tool_settings.unified_paint_settings.strength'),
- ("use_secondary", 'tool_settings.unified_paint_settings.use_unified_strength'),
- ("rotation_path", 'tool_settings.sculpt.brush.texture_slot.angle'),
- ("color_path", 'tool_settings.sculpt.brush.cursor_color_add'),
- ("fill_color_path", ''),
- ("fill_color_override_path", ''),
- ("fill_color_override_test_path", ''),
- ("zoom_path", ''),
- ("image_id", 'tool_settings.sculpt.brush'),
- ("secondary_tex", False),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path_primary", 'tool_settings.sculpt.brush.texture_slot.angle'),
- ("data_path_secondary", ''),
- ("use_secondary", ''),
- ("rotation_path", 'tool_settings.sculpt.brush.texture_slot.angle'),
- ("color_path", 'tool_settings.sculpt.brush.cursor_color_add'),
- ("fill_color_path", ''),
- ("fill_color_override_path", ''),
- ("fill_color_override_test_path", ''),
- ("zoom_path", ''),
- ("image_id", 'tool_settings.sculpt.brush'),
- ("secondary_tex", False),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS'},
- {"properties":
- [("mode", 'TRANSLATION'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'SCALE'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'ROTATION'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("mode", 'TRANSLATION'),
- ("texmode", 'SECONDARY'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("mode", 'SCALE'),
- ("texmode", 'SECONDARY'),
- ],
- },
- ),
- ("brush.stencil_control",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("mode", 'ROTATION'),
- ("texmode", 'SECONDARY'),
- ],
- },
- ),
- ("paint.brush_select",
- {"type": 'X', "value": 'PRESS'},
- {"properties":
- [("paint_mode", 'SCULPT'),
- ("sculpt_tool", 'DRAW'),
- ],
- },
- ),
- ("paint.brush_select",
- {"type": 'S', "value": 'PRESS'},
- {"properties":
- [("paint_mode", 'SCULPT'),
- ("sculpt_tool", 'SMOOTH'),
- ],
- },
- ),
- ("paint.brush_select",
- {"type": 'P', "value": 'PRESS'},
- {"properties":
- [("paint_mode", 'SCULPT'),
- ("sculpt_tool", 'PINCH'),
- ],
- },
- ),
- ("paint.brush_select",
- {"type": 'I', "value": 'PRESS'},
- {"properties":
- [("paint_mode", 'SCULPT'),
- ("sculpt_tool", 'INFLATE'),
- ],
- },
- ),
- ("paint.brush_select",
- {"type": 'G', "value": 'PRESS'},
- {"properties":
- [("paint_mode", 'SCULPT'),
- ("sculpt_tool", 'GRAB'),
- ],
- },
- ),
- ("paint.brush_select",
- {"type": 'L', "value": 'PRESS'},
- {"properties":
- [("paint_mode", 'SCULPT'),
- ("sculpt_tool", 'LAYER'),
- ],
- },
- ),
- ("paint.brush_select",
- {"type": 'T', "value": 'PRESS', "shift": True},
- {"properties":
- [("paint_mode", 'SCULPT'),
- ("sculpt_tool", 'FLATTEN'),
- ],
- },
- ),
- ("paint.brush_select",
- {"type": 'C', "value": 'PRESS'},
- {"properties":
- [("paint_mode", 'SCULPT'),
- ("sculpt_tool", 'CLAY'),
- ],
- },
- ),
- ("paint.brush_select",
- {"type": 'C', "value": 'PRESS', "shift": True},
- {"properties":
- [("paint_mode", 'SCULPT'),
- ("sculpt_tool", 'CREASE'),
- ],
- },
- ),
- ("paint.brush_select",
- {"type": 'K', "value": 'PRESS'},
- {"properties":
- [("paint_mode", 'SCULPT'),
- ("sculpt_tool", 'SNAKE_HOOK'),
- ],
- },
- ),
- ("paint.brush_select",
- {"type": 'M', "value": 'PRESS'},
- {"properties":
- [("paint_mode", 'SCULPT'),
- ("sculpt_tool", 'MASK'),
- ("toggle", True),
- ("create_missing", True),
- ],
- },
- ),
- ("wm.context_menu_enum",
- {"type": 'E', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.sculpt.brush.stroke_method'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'S', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.sculpt.brush.use_smooth_stroke'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'R', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_angle_control'),
- ],
- },
- ),
- ],
- },
- ),
- ("Mesh",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("mesh.loopcut_slide", {"type": 'R', "value": 'PRESS', "ctrl": True}, None),
- ("mesh.offset_edge_loops_slide", {"type": 'R', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("mesh.inset", {"type": 'I', "value": 'PRESS'}, None),
- ("mesh.poke", {"type": 'P', "value": 'PRESS', "alt": True}, None),
- ("mesh.bevel",
- {"type": 'B', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("vertex_only", False),
- ],
- },
- ),
- ("mesh.bevel",
- {"type": 'B', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("vertex_only", True),
- ],
- },
- ),
- ("mesh.loop_select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("extend", False),
- ("deselect", False),
- ("toggle", False),
- ],
- },
- ),
- ("mesh.loop_select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("extend", False),
- ("deselect", False),
- ("toggle", True),
- ],
- },
- ),
- ("mesh.edgering_select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("extend", False),
- ("deselect", False),
- ("toggle", False),
- ],
- },
- ),
- ("mesh.edgering_select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
- {"properties":
- [("extend", False),
- ("deselect", False),
- ("toggle", True),
- ],
- },
- ),
- ("mesh.shortest_path_pick",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("use_fill", False),
- ],
- },
- ),
- ("mesh.shortest_path_pick",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("use_fill", True),
- ],
- },
- ),
- ("mesh.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("mesh.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("mesh.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
- ("mesh.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
- ("mesh.select_next_item", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("mesh.select_prev_item", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("mesh.select_non_manifold", {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
- ("mesh.select_linked", {"type": 'L', "value": 'PRESS', "ctrl": True}, None),
- ("mesh.select_linked_pick",
- {"type": 'L', "value": 'PRESS'},
- {"properties":
- [("deselect", False),
- ],
- },
- ),
- ("mesh.select_linked_pick",
- {"type": 'L', "value": 'PRESS', "shift": True},
- {"properties":
- [("deselect", True),
- ],
- },
- ),
- ("mesh.faces_select_linked_flat", {"type": 'F', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
- ("wm.call_menu",
- {"type": 'G', "value": 'PRESS', "shift": True},
- {"properties":
- [("name", 'VIEW3D_MT_edit_mesh_select_similar'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'TAB', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("name", 'VIEW3D_MT_edit_mesh_select_mode'),
- ],
- },
- ),
- ("mesh.hide",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("unselected", False),
- ],
- },
- ),
- ("mesh.hide",
- {"type": 'H', "value": 'PRESS', "shift": True},
- {"properties":
- [("unselected", True),
- ],
- },
- ),
- ("mesh.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
- ("mesh.normals_make_consistent",
- {"type": 'N', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("inside", False),
- ],
- },
- ),
- ("mesh.normals_make_consistent",
- {"type": 'N', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("inside", True),
- ],
- },
- ),
- ("view3d.edit_mesh_extrude_move_normal", {"type": 'E', "value": 'PRESS'}, None),
- ("wm.call_menu",
- {"type": 'E', "value": 'PRESS', "alt": True},
- {"properties":
- [("name", 'VIEW3D_MT_edit_mesh_extrude'),
- ],
- },
- ),
- ("transform.edge_crease", {"type": 'E', "value": 'PRESS', "shift": True}, None),
- ("mesh.spin", {"type": 'R', "value": 'PRESS', "alt": True}, None),
- ("mesh.fill", {"type": 'F', "value": 'PRESS', "alt": True}, None),
- ("mesh.beautify_fill", {"type": 'F', "value": 'PRESS', "shift": True, "alt": True}, None),
- ("mesh.quads_convert_to_tris",
- {"type": 'T', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("quad_method", 'BEAUTY'),
- ("ngon_method", 'BEAUTY'),
- ],
- },
- ),
- ("mesh.quads_convert_to_tris",
- {"type": 'T', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("quad_method", 'FIXED'),
- ("ngon_method", 'CLIP'),
- ],
- },
- ),
- ("mesh.tris_convert_to_quads", {"type": 'J', "value": 'PRESS', "alt": True}, None),
- ("mesh.rip_move",
- {"type": 'V', "value": 'PRESS'},
- {"properties":
- [("MESH_OT_rip",
- [("use_fill", False),
- ],
- ),
- ],
- },
- ),
- ("mesh.rip_move",
- {"type": 'V', "value": 'PRESS', "alt": True},
- {"properties":
- [("MESH_OT_rip",
- [("use_fill", True),
- ],
- ),
- ],
- },
- ),
- ("mesh.rip_edge_move", {"type": 'D', "value": 'PRESS', "alt": True}, None),
- ("mesh.merge", {"type": 'M', "value": 'PRESS', "alt": True}, None),
- ("transform.shrink_fatten", {"type": 'S', "value": 'PRESS', "alt": True}, None),
- ("mesh.edge_face_add", {"type": 'F', "value": 'PRESS'}, None),
- ("mesh.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
- ("wm.call_menu",
- {"type": 'A', "value": 'PRESS', "shift": True},
- {"properties":
- [("name", 'VIEW3D_MT_mesh_add'),
- ],
- },
- ),
- ("mesh.separate", {"type": 'P', "value": 'PRESS'}, None),
- ("mesh.split", {"type": 'Y', "value": 'PRESS'}, None),
- ("mesh.vert_connect_path", {"type": 'J', "value": 'PRESS'}, None),
- ("transform.vert_slide", {"type": 'V', "value": 'PRESS', "shift": True}, None),
- ("mesh.dupli_extrude_cursor",
- {"type": 'ACTIONMOUSE', "value": 'CLICK', "ctrl": True},
- {"properties":
- [("rotate_source", True),
- ],
- },
- ),
- ("mesh.dupli_extrude_cursor",
- {"type": 'ACTIONMOUSE', "value": 'CLICK', "shift": True, "ctrl": True},
- {"properties":
- [("rotate_source", False),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'X', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_edit_mesh_delete'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'DEL', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_edit_mesh_delete'),
- ],
- },
- ),
- ("mesh.dissolve_mode", {"type": 'X', "value": 'PRESS', "ctrl": True}, None),
- ("mesh.dissolve_mode", {"type": 'DEL', "value": 'PRESS', "ctrl": True}, None),
- ("mesh.knife_tool",
- {"type": 'K', "value": 'PRESS'},
- {"properties":
- [("use_occlude_geometry", True),
- ("only_selected", False),
- ],
- },
- ),
- ("mesh.knife_tool",
- {"type": 'K', "value": 'PRESS', "shift": True},
- {"properties":
- [("use_occlude_geometry", False),
- ("only_selected", True),
- ],
- },
- ),
- ("object.vertex_parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_edit_mesh_specials'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'F', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("name", 'VIEW3D_MT_edit_mesh_faces'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'E', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("name", 'VIEW3D_MT_edit_mesh_edges'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'V', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("name", 'VIEW3D_MT_edit_mesh_vertices'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'H', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("name", 'VIEW3D_MT_hook'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'U', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_uv_map'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'G', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("name", 'VIEW3D_MT_vertex_group'),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'ZERO', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 0),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'ONE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 1),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'TWO', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 2),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'THREE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 3),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'FOUR', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 4),
- ],
- },
- ),
- ("object.subdivision_set",
- {"type": 'FIVE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("level", 5),
- ],
- },
- ),
- ("wm.context_cycle_enum",
- {"type": 'O', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit_falloff'),
- ("wrap", True),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'O', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit'),
- ("value_1", 'DISABLED'),
- ("value_2", 'ENABLED'),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'O', "value": 'PRESS', "alt": True},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit'),
- ("value_1", 'DISABLED'),
- ("value_2", 'CONNECTED'),
- ],
- },
- ),
- ],
- },
- ),
- ("Armature",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("armature.hide",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("unselected", False),
- ],
- },
- ),
- ("armature.hide",
- {"type": 'H', "value": 'PRESS', "shift": True},
- {"properties":
- [("unselected", True),
- ],
- },
- ),
- ("armature.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
- ("armature.align", {"type": 'A', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("armature.calculate_roll", {"type": 'N', "value": 'PRESS', "ctrl": True}, None),
- ("armature.roll_clear", {"type": 'R', "value": 'PRESS', "alt": True}, None),
- ("armature.switch_direction", {"type": 'F', "value": 'PRESS', "alt": True}, None),
- ("armature.bone_primitive_add", {"type": 'A', "value": 'PRESS', "shift": True}, None),
- ("armature.parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
- ("armature.parent_clear", {"type": 'P', "value": 'PRESS', "alt": True}, None),
- ("armature.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("armature.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("armature.select_mirror",
- {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("armature.select_hierarchy",
- {"type": 'LEFT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("direction", 'PARENT'),
- ("extend", False),
- ],
- },
- ),
- ("armature.select_hierarchy",
- {"type": 'LEFT_BRACKET', "value": 'PRESS', "shift": True},
- {"properties":
- [("direction", 'PARENT'),
- ("extend", True),
- ],
- },
- ),
- ("armature.select_hierarchy",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("direction", 'CHILD'),
- ("extend", False),
- ],
- },
- ),
- ("armature.select_hierarchy",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS', "shift": True},
- {"properties":
- [("direction", 'CHILD'),
- ("extend", True),
- ],
- },
- ),
- ("armature.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
- ("armature.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
- ("armature.select_similar", {"type": 'G', "value": 'PRESS', "shift": True}, None),
- ("armature.select_linked", {"type": 'L', "value": 'PRESS'}, None),
- ("armature.shortest_path_pick", {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("wm.call_menu",
- {"type": 'X', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_edit_armature_delete'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'DEL', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_edit_armature_delete'),
- ],
- },
- ),
- ("armature.dissolve", {"type": 'X', "value": 'PRESS', "ctrl": True}, None),
- ("armature.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
- ("armature.extrude_move", {"type": 'E', "value": 'PRESS'}, None),
- ("armature.extrude_forked", {"type": 'E', "value": 'PRESS', "shift": True}, None),
- ("armature.click_extrude", {"type": 'ACTIONMOUSE', "value": 'CLICK', "ctrl": True}, None),
- ("armature.fill", {"type": 'F', "value": 'PRESS'}, None),
- ("armature.merge", {"type": 'M', "value": 'PRESS', "alt": True}, None),
- ("armature.split", {"type": 'Y', "value": 'PRESS'}, None),
- ("armature.separate", {"type": 'P', "value": 'PRESS'}, None),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS', "shift": True},
- {"properties":
- [("name", 'VIEW3D_MT_bone_options_toggle'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("name", 'VIEW3D_MT_bone_options_enable'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS', "alt": True},
- {"properties":
- [("name", 'VIEW3D_MT_bone_options_disable'),
- ],
- },
- ),
- ("armature.layers_show_all", {"type": 'ACCENT_GRAVE', "value": 'PRESS', "ctrl": True}, None),
- ("armature.armature_layers", {"type": 'M', "value": 'PRESS', "shift": True}, None),
- ("armature.bone_layers", {"type": 'M', "value": 'PRESS'}, None),
- ("transform.transform",
- {"type": 'S', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("mode", 'BONE_SIZE'),
- ],
- },
- ),
- ("transform.transform",
- {"type": 'S', "value": 'PRESS', "alt": True},
- {"properties":
- [("mode", 'BONE_ENVELOPE'),
- ],
- },
- ),
- ("transform.transform",
- {"type": 'R', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'BONE_ROLL'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_armature_specials'),
- ],
- },
- ),
- ],
- },
- ),
- ("Metaball",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("object.metaball_add", {"type": 'A', "value": 'PRESS', "shift": True}, None),
- ("mball.reveal_metaelems", {"type": 'H', "value": 'PRESS', "alt": True}, None),
- ("mball.hide_metaelems",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("unselected", False),
- ],
- },
- ),
- ("mball.hide_metaelems",
- {"type": 'H', "value": 'PRESS', "shift": True},
- {"properties":
- [("unselected", True),
- ],
- },
- ),
- ("mball.delete_metaelems", {"type": 'X', "value": 'PRESS'}, None),
- ("mball.delete_metaelems", {"type": 'DEL', "value": 'PRESS'}, None),
- ("mball.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
- ("mball.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("mball.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("mball.select_similar", {"type": 'G', "value": 'PRESS', "shift": True}, None),
- ("wm.context_cycle_enum",
- {"type": 'O', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit_falloff'),
- ("wrap", True),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'O', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit'),
- ("value_1", 'DISABLED'),
- ("value_2", 'ENABLED'),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'O', "value": 'PRESS', "alt": True},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit'),
- ("value_1", 'DISABLED'),
- ("value_2", 'CONNECTED'),
- ],
- },
- ),
- ],
- },
- ),
- ("Lattice",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("lattice.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("lattice.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("lattice.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
- ("lattice.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
- ("object.vertex_parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
- ("lattice.flip", {"type": 'F', "value": 'PRESS', "ctrl": True}, None),
- ("wm.call_menu",
- {"type": 'H', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("name", 'VIEW3D_MT_hook'),
- ],
- },
- ),
- ("wm.context_cycle_enum",
- {"type": 'O', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit_falloff'),
- ("wrap", True),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'O', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit'),
- ("value_1", 'DISABLED'),
- ("value_2", 'ENABLED'),
- ],
- },
- ),
- ],
- },
- ),
- ("Particle",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("particle.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("particle.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("particle.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
- ("particle.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
- ("particle.select_linked",
- {"type": 'L', "value": 'PRESS'},
- {"properties":
- [("deselect", False),
- ],
- },
- ),
- ("particle.select_linked",
- {"type": 'L', "value": 'PRESS', "shift": True},
- {"properties":
- [("deselect", True),
- ],
- },
- ),
- ("particle.delete", {"type": 'X', "value": 'PRESS'}, None),
- ("particle.delete", {"type": 'DEL', "value": 'PRESS'}, None),
- ("particle.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
- ("particle.hide",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("unselected", False),
- ],
- },
- ),
- ("particle.hide",
- {"type": 'H', "value": 'PRESS', "shift": True},
- {"properties":
- [("unselected", True),
- ],
- },
- ),
- ("particle.brush_edit", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
- ("particle.brush_edit", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True}, None),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS'},
- {"properties":
- [("data_path_primary", 'tool_settings.particle_edit.brush.size'),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path_primary", 'tool_settings.particle_edit.brush.strength'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS'},
- {"properties":
- [("name", 'VIEW3D_MT_particle_specials'),
- ],
- },
- ),
- ("particle.weight_set", {"type": 'K', "value": 'PRESS', "shift": True}, None),
- ("wm.context_cycle_enum",
- {"type": 'O', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit_falloff'),
- ("wrap", True),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'O', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit'),
- ("value_1", 'DISABLED'),
- ("value_2", 'ENABLED'),
- ],
- },
- ),
- ],
- },
- ),
- ("Font",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("font.style_toggle",
- {"type": 'B', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("style", 'BOLD'),
- ],
- },
- ),
- ("font.style_toggle",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("style", 'ITALIC'),
- ],
- },
- ),
- ("font.style_toggle",
- {"type": 'U', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("style", 'UNDERLINE'),
- ],
- },
- ),
- ("font.style_toggle",
- {"type": 'P', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("style", 'SMALL_CAPS'),
- ],
- },
- ),
- ("font.delete",
- {"type": 'DEL', "value": 'PRESS'},
- {"properties":
- [("type", 'NEXT_OR_SELECTION'),
- ],
- },
- ),
- ("font.delete",
- {"type": 'DEL', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'NEXT_WORD'),
- ],
- },
- ),
- ("font.delete",
- {"type": 'BACK_SPACE', "value": 'PRESS'},
- {"properties":
- [("type", 'PREVIOUS_OR_SELECTION'),
- ],
- },
- ),
- ("font.delete",
- {"type": 'BACK_SPACE', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'PREVIOUS_OR_SELECTION'),
- ],
- },
- ),
- ("font.delete",
- {"type": 'BACK_SPACE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'PREVIOUS_WORD'),
- ],
- },
- ),
- ("font.move",
- {"type": 'HOME', "value": 'PRESS'},
- {"properties":
- [("type", 'LINE_BEGIN'),
- ],
- },
- ),
- ("font.move",
- {"type": 'END', "value": 'PRESS'},
- {"properties":
- [("type", 'LINE_END'),
- ],
- },
- ),
- ("font.move",
- {"type": 'LEFT_ARROW', "value": 'PRESS'},
- {"properties":
- [("type", 'PREVIOUS_CHARACTER'),
- ],
- },
- ),
- ("font.move",
- {"type": 'RIGHT_ARROW', "value": 'PRESS'},
- {"properties":
- [("type", 'NEXT_CHARACTER'),
- ],
- },
- ),
- ("font.move",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'PREVIOUS_WORD'),
- ],
- },
- ),
- ("font.move",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'NEXT_WORD'),
- ],
- },
- ),
- ("font.move",
- {"type": 'UP_ARROW', "value": 'PRESS'},
- {"properties":
- [("type", 'PREVIOUS_LINE'),
- ],
- },
- ),
- ("font.move",
- {"type": 'DOWN_ARROW', "value": 'PRESS'},
- {"properties":
- [("type", 'NEXT_LINE'),
- ],
- },
- ),
- ("font.move",
- {"type": 'PAGE_UP', "value": 'PRESS'},
- {"properties":
- [("type", 'PREVIOUS_PAGE'),
- ],
- },
- ),
- ("font.move",
- {"type": 'PAGE_DOWN', "value": 'PRESS'},
- {"properties":
- [("type", 'NEXT_PAGE'),
- ],
- },
- ),
- ("font.move_select",
- {"type": 'HOME', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'LINE_BEGIN'),
- ],
- },
- ),
- ("font.move_select",
- {"type": 'END', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'LINE_END'),
- ],
- },
- ),
- ("font.move_select",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'PREVIOUS_CHARACTER'),
- ],
- },
- ),
- ("font.move_select",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'NEXT_CHARACTER'),
- ],
- },
- ),
- ("font.move_select",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("type", 'PREVIOUS_WORD'),
- ],
- },
- ),
- ("font.move_select",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("type", 'NEXT_WORD'),
- ],
- },
- ),
- ("font.move_select",
- {"type": 'UP_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'PREVIOUS_LINE'),
- ],
- },
- ),
- ("font.move_select",
- {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'NEXT_LINE'),
- ],
- },
- ),
- ("font.move_select",
- {"type": 'PAGE_UP', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'PREVIOUS_PAGE'),
- ],
- },
- ),
- ("font.move_select",
- {"type": 'PAGE_DOWN', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'NEXT_PAGE'),
- ],
- },
- ),
- ("font.change_spacing",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "alt": True},
- {"properties":
- [("delta", -1),
- ],
- },
- ),
- ("font.change_spacing",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "alt": True},
- {"properties":
- [("delta", 1),
- ],
- },
- ),
- ("font.change_character",
- {"type": 'UP_ARROW', "value": 'PRESS', "alt": True},
- {"properties":
- [("delta", 1),
- ],
- },
- ),
- ("font.change_character",
- {"type": 'DOWN_ARROW', "value": 'PRESS', "alt": True},
- {"properties":
- [("delta", -1),
- ],
- },
- ),
- ("font.select_all", {"type": 'A', "value": 'PRESS', "ctrl": True}, None),
- ("font.text_copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
- ("font.text_cut", {"type": 'X', "value": 'PRESS', "ctrl": True}, None),
- ("font.text_paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
- ("font.line_break", {"type": 'RET', "value": 'PRESS'}, None),
- ("font.text_insert", {"type": 'TEXTINPUT', "value": 'ANY', "any": True}, None),
- ("font.text_insert",
- {"type": 'BACK_SPACE', "value": 'PRESS', "alt": True},
- {"properties":
- [("accent", True),
- ],
- },
- ),
- ],
- },
- ),
- ("Object Non-modal",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("object.mode_set",
- {"type": 'TAB', "value": 'PRESS'},
- {"properties":
- [("mode", 'EDIT'),
- ("toggle", True),
- ],
- },
- ),
- ("object.mode_set",
- {"type": 'TAB', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'POSE'),
- ("toggle", True),
- ],
- },
- ),
- ("object.mode_set",
- {"type": 'V', "value": 'PRESS'},
- {"properties":
- [("mode", 'VERTEX_PAINT'),
- ("toggle", True),
- ],
- },
- ),
- ("object.mode_set",
- {"type": 'TAB', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'WEIGHT_PAINT'),
- ("toggle", True),
- ],
- },
- ),
- ("object.origin_set", {"type": 'C', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
- ],
- },
- ),
- ("3D View",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("view3d.cursor3d", {"type": 'ACTIONMOUSE', "value": 'CLICK'}, None),
- ("view3d.rotate", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
- ("view3d.move", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True}, None),
- ("view3d.zoom", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("view3d.dolly", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("view3d.view_selected",
- {"type": 'NUMPAD_PERIOD', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("use_all_regions", True),
- ],
- },
- ),
- ("view3d.view_selected",
- {"type": 'NUMPAD_PERIOD', "value": 'PRESS'},
- {"properties":
- [("use_all_regions", False),
- ],
- },
- ),
- ("view3d.view_lock_to_active", {"type": 'NUMPAD_PERIOD', "value": 'PRESS', "shift": True}, None),
- ("view3d.view_lock_clear", {"type": 'NUMPAD_PERIOD', "value": 'PRESS', "alt": True}, None),
- ("view3d.navigate", {"type": 'F', "value": 'PRESS', "shift": True}, None),
- ("view3d.smoothview", {"type": 'TIMER1', "value": 'ANY', "any": True}, None),
- ("view3d.rotate", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
- ("view3d.rotate", {"type": 'MOUSEROTATE', "value": 'ANY'}, None),
- ("view3d.move", {"type": 'TRACKPADPAN', "value": 'ANY', "shift": True}, None),
- ("view3d.zoom", {"type": 'TRACKPADZOOM', "value": 'ANY'}, None),
- ("view3d.zoom", {"type": 'TRACKPADPAN', "value": 'ANY', "ctrl": True}, None),
- ("view3d.zoom",
- {"type": 'NUMPAD_PLUS', "value": 'PRESS'},
- {"properties":
- [("delta", 1),
- ],
- },
- ),
- ("view3d.zoom",
- {"type": 'NUMPAD_MINUS', "value": 'PRESS'},
- {"properties":
- [("delta", -1),
- ],
- },
- ),
- ("view3d.zoom",
- {"type": 'EQUAL', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("delta", 1),
- ],
- },
- ),
- ("view3d.zoom",
- {"type": 'MINUS', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("delta", -1),
- ],
- },
- ),
- ("view3d.zoom",
- {"type": 'WHEELINMOUSE', "value": 'PRESS'},
- {"properties":
- [("delta", 1),
- ],
- },
- ),
- ("view3d.zoom",
- {"type": 'WHEELOUTMOUSE', "value": 'PRESS'},
- {"properties":
- [("delta", -1),
- ],
- },
- ),
- ("view3d.dolly",
- {"type": 'NUMPAD_PLUS', "value": 'PRESS', "shift": True},
- {"properties":
- [("delta", 1),
- ],
- },
- ),
- ("view3d.dolly",
- {"type": 'NUMPAD_MINUS', "value": 'PRESS', "shift": True},
- {"properties":
- [("delta", -1),
- ],
- },
- ),
- ("view3d.dolly",
- {"type": 'EQUAL', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("delta", 1),
- ],
- },
- ),
- ("view3d.dolly",
- {"type": 'MINUS', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("delta", -1),
- ],
- },
- ),
- ("view3d.zoom_camera_1_to_1", {"type": 'NUMPAD_ENTER', "value": 'PRESS', "shift": True}, None),
- ("view3d.view_center_camera", {"type": 'HOME', "value": 'PRESS'}, None),
- ("view3d.view_center_lock", {"type": 'HOME', "value": 'PRESS'}, None),
- ("view3d.view_center_cursor", {"type": 'HOME', "value": 'PRESS', "alt": True}, None),
- ("view3d.view_center_pick", {"type": 'F', "value": 'PRESS', "alt": True}, None),
- ("view3d.view_all",
- {"type": 'HOME', "value": 'PRESS'},
- {"properties":
- [("center", False),
- ],
- },
- ),
- ("view3d.view_all",
- {"type": 'HOME', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("use_all_regions", True),
- ("center", False),
- ],
- },
- ),
- ("view3d.view_all",
- {"type": 'C', "value": 'PRESS', "shift": True},
- {"properties":
- [("center", True),
- ],
- },
- ),
- ("view3d.view_camera", {"type": 'NUMPAD_0', "value": 'PRESS'}, None),
- ("view3d.view_axis",
- {"type": 'NUMPAD_1', "value": 'PRESS'},
- {"properties":
- [("type", 'FRONT'),
- ],
- },
- ),
- ("view3d.view_orbit",
- {"type": 'NUMPAD_2', "value": 'PRESS'},
- {"properties":
- [("type", 'ORBITDOWN'),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NUMPAD_3', "value": 'PRESS'},
- {"properties":
- [("type", 'RIGHT'),
- ],
- },
- ),
- ("view3d.view_orbit",
- {"type": 'NUMPAD_4', "value": 'PRESS'},
- {"properties":
- [("type", 'ORBITLEFT'),
- ],
- },
- ),
- ("view3d.view_persportho", {"type": 'NUMPAD_5', "value": 'PRESS'}, None),
- ("view3d.view_orbit",
- {"type": 'NUMPAD_6', "value": 'PRESS'},
- {"properties":
- [("type", 'ORBITRIGHT'),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NUMPAD_7', "value": 'PRESS'},
- {"properties":
- [("type", 'TOP'),
- ],
- },
- ),
- ("view3d.view_orbit",
- {"type": 'NUMPAD_8', "value": 'PRESS'},
- {"properties":
- [("type", 'ORBITUP'),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NUMPAD_1', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'BACK'),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NUMPAD_3', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'LEFT'),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NUMPAD_7', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'BOTTOM'),
- ],
- },
- ),
- ("view3d.view_pan",
- {"type": 'NUMPAD_2', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'PANDOWN'),
- ],
- },
- ),
- ("view3d.view_pan",
- {"type": 'NUMPAD_4', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'PANLEFT'),
- ],
- },
- ),
- ("view3d.view_pan",
- {"type": 'NUMPAD_6', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'PANRIGHT'),
- ],
- },
- ),
- ("view3d.view_pan",
- {"type": 'NUMPAD_8', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'PANUP'),
- ],
- },
- ),
- ("view3d.view_roll",
- {"type": 'NUMPAD_4', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'LEFT'),
- ],
- },
- ),
- ("view3d.view_roll",
- {"type": 'NUMPAD_6', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'RIGHT'),
- ],
- },
- ),
- ("view3d.view_orbit",
- {"type": 'NUMPAD_9', "value": 'PRESS'},
- {"properties":
- [("angle", 3.1415927),
- ("type", 'ORBITRIGHT'),
- ],
- },
- ),
- ("view3d.view_pan",
- {"type": 'WHEELUPMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'PANRIGHT'),
- ],
- },
- ),
- ("view3d.view_pan",
- {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'PANLEFT'),
- ],
- },
- ),
- ("view3d.view_pan",
- {"type": 'WHEELUPMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'PANUP'),
- ],
- },
- ),
- ("view3d.view_pan",
- {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'PANDOWN'),
- ],
- },
- ),
- ("view3d.view_orbit",
- {"type": 'WHEELUPMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("type", 'ORBITLEFT'),
- ],
- },
- ),
- ("view3d.view_orbit",
- {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("type", 'ORBITRIGHT'),
- ],
- },
- ),
- ("view3d.view_orbit",
- {"type": 'WHEELUPMOUSE', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("type", 'ORBITUP'),
- ],
- },
- ),
- ("view3d.view_orbit",
- {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("type", 'ORBITDOWN'),
- ],
- },
- ),
- ("view3d.view_roll",
- {"type": 'WHEELUPMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("type", 'LEFT'),
- ],
- },
- ),
- ("view3d.view_roll",
- {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("type", 'RIGHT'),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NUMPAD_1', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'FRONT'),
- ("align_active", True),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NUMPAD_3', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'RIGHT'),
- ("align_active", True),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NUMPAD_7', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'TOP'),
- ("align_active", True),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NUMPAD_1', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("type", 'BACK'),
- ("align_active", True),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NUMPAD_3', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("type", 'LEFT'),
- ("align_active", True),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NUMPAD_7', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("type", 'BOTTOM'),
- ("align_active", True),
- ],
- },
- ),
- ("view3d.ndof_orbit_zoom", {"type": 'NDOF_MOTION', "value": 'ANY'}, None),
- ("view3d.ndof_orbit", {"type": 'NDOF_MOTION', "value": 'ANY', "ctrl": True}, None),
- ("view3d.ndof_pan", {"type": 'NDOF_MOTION', "value": 'ANY', "shift": True}, None),
- ("view3d.ndof_all", {"type": 'NDOF_MOTION', "value": 'ANY', "shift": True, "ctrl": True}, None),
- ("view3d.view_selected",
- {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'},
- {"properties":
- [("use_all_regions", False),
- ],
- },
- ),
- ("view3d.view_roll",
- {"type": 'NDOF_BUTTON_ROLL_CCW', "value": 'PRESS'},
- {"properties":
- [("type", 'LEFT'),
- ],
- },
- ),
- ("view3d.view_roll",
- {"type": 'NDOF_BUTTON_ROLL_CCW', "value": 'PRESS'},
- {"properties":
- [("type", 'RIGHT'),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NDOF_BUTTON_FRONT', "value": 'PRESS'},
- {"properties":
- [("type", 'FRONT'),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NDOF_BUTTON_BACK', "value": 'PRESS'},
- {"properties":
- [("type", 'BACK'),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NDOF_BUTTON_LEFT', "value": 'PRESS'},
- {"properties":
- [("type", 'LEFT'),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NDOF_BUTTON_RIGHT', "value": 'PRESS'},
- {"properties":
- [("type", 'RIGHT'),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NDOF_BUTTON_TOP', "value": 'PRESS'},
- {"properties":
- [("type", 'TOP'),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NDOF_BUTTON_BOTTOM', "value": 'PRESS'},
- {"properties":
- [("type", 'BOTTOM'),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NDOF_BUTTON_FRONT', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'FRONT'),
- ("align_active", True),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NDOF_BUTTON_RIGHT', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'RIGHT'),
- ("align_active", True),
- ],
- },
- ),
- ("view3d.view_axis",
- {"type": 'NDOF_BUTTON_TOP', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'TOP'),
- ("align_active", True),
- ],
- },
- ),
- ("view3d.layers",
- {"type": 'ACCENT_GRAVE', "value": 'PRESS'},
- {"properties":
- [("nr", 0),
- ],
- },
- ),
- ("view3d.layers",
- {"type": 'ONE', "value": 'PRESS', "any": True},
- {"properties":
- [("nr", 1),
- ],
- },
- ),
- ("view3d.layers",
- {"type": 'TWO', "value": 'PRESS', "any": True},
- {"properties":
- [("nr", 2),
- ],
- },
- ),
- ("view3d.layers",
- {"type": 'THREE', "value": 'PRESS', "any": True},
- {"properties":
- [("nr", 3),
- ],
- },
- ),
- ("view3d.layers",
- {"type": 'FOUR', "value": 'PRESS', "any": True},
- {"properties":
- [("nr", 4),
- ],
- },
- ),
- ("view3d.layers",
- {"type": 'FIVE', "value": 'PRESS', "any": True},
- {"properties":
- [("nr", 5),
- ],
- },
- ),
- ("view3d.layers",
- {"type": 'SIX', "value": 'PRESS', "any": True},
- {"properties":
- [("nr", 6),
- ],
- },
- ),
- ("view3d.layers",
- {"type": 'SEVEN', "value": 'PRESS', "any": True},
- {"properties":
- [("nr", 7),
- ],
- },
- ),
- ("view3d.layers",
- {"type": 'EIGHT', "value": 'PRESS', "any": True},
- {"properties":
- [("nr", 8),
- ],
- },
- ),
- ("view3d.layers",
- {"type": 'NINE', "value": 'PRESS', "any": True},
- {"properties":
- [("nr", 9),
- ],
- },
- ),
- ("view3d.layers",
- {"type": 'ZERO', "value": 'PRESS', "any": True},
- {"properties":
- [("nr", 10),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'Z', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.shading.type'),
- ("value_1", 'WIREFRAME'),
- ("value_2", 'SOLID'),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'Z', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'space_data.shading.type'),
- ("value_1", 'RENDERED'),
- ("value_2", 'SOLID'),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'Z', "value": 'PRESS', "alt": True},
- {"properties":
- [("data_path", 'space_data.shading.type'),
- ("value_1", 'MATERIAL'),
- ("value_2", 'SOLID'),
- ],
- },
- ),
- ("view3d.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS'},
- {"properties":
- [("extend", False),
- ("deselect", False),
- ("toggle", False),
- ("center", False),
- ("enumerate", False),
- ("object", False),
- ],
- },
- ),
- ("view3d.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", False),
- ("deselect", False),
- ("toggle", True),
- ("center", False),
- ("enumerate", False),
- ("object", False),
- ],
- },
- ),
- ("view3d.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("extend", False),
- ("deselect", False),
- ("toggle", False),
- ("center", True),
- ("enumerate", False),
- ("object", True),
- ],
- },
- ),
- ("view3d.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("extend", False),
- ("deselect", False),
- ("toggle", False),
- ("center", False),
- ("enumerate", True),
- ("object", False),
- ],
- },
- ),
- ("view3d.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("extend", True),
- ("deselect", False),
- ("toggle", True),
- ("center", True),
- ("enumerate", False),
- ("object", False),
- ],
- },
- ),
- ("view3d.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("extend", False),
- ("deselect", False),
- ("toggle", False),
- ("center", True),
- ("enumerate", True),
- ("object", False),
- ],
- },
- ),
- ("view3d.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("extend", False),
- ("deselect", False),
- ("toggle", True),
- ("center", False),
- ("enumerate", True),
- ("object", False),
- ],
- },
- ),
- ("view3d.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
- {"properties":
- [("extend", False),
- ("deselect", False),
- ("toggle", True),
- ("center", True),
- ("enumerate", True),
- ("object", False),
- ],
- },
- ),
- ("view3d.select_box", {"type": 'B', "value": 'PRESS'}, None),
- ("view3d.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True},
- {"properties":
- [("deselect", False),
- ],
- },
- ),
- ("view3d.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True},
- {"properties":
- [("deselect", True),
- ],
- },
- ),
- ("view3d.select_circle", {"type": 'C', "value": 'PRESS'}, None),
- ("view3d.clip_border", {"type": 'B', "value": 'PRESS', "alt": True}, None),
- ("view3d.zoom_border", {"type": 'B', "value": 'PRESS', "shift": True}, None),
- ("view3d.render_border", {"type": 'B', "value": 'PRESS', "ctrl": True}, None),
- ("view3d.clear_render_border", {"type": 'B', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("view3d.camera_to_view", {"type": 'NUMPAD_0', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("view3d.object_as_camera", {"type": 'NUMPAD_0', "value": 'PRESS', "ctrl": True}, None),
- ("wm.call_menu",
- {"type": 'S', "value": 'PRESS', "shift": True},
- {"properties":
- [("name", 'VIEW3D_MT_snap'),
- ],
- },
- ),
- ("view3d.copybuffer", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
- ("view3d.pastebuffer", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
- ("wm.context_set_enum",
- {"type": 'COMMA', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.transform_pivot_point'),
- ("value", 'BOUNDING_BOX_CENTER'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'COMMA', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'tool_settings.transform_pivot_point'),
- ("value", 'MEDIAN_POINT'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'COMMA', "value": 'PRESS', "alt": True},
- {"properties":
- [("data_path", 'tool_settings.use_transform_pivot_point_align'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'PERIOD', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.transform_pivot_point'),
- ("value", 'CURSOR'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'PERIOD', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'tool_settings.transform_pivot_point'),
- ("value", 'INDIVIDUAL_ORIGINS'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'PERIOD', "value": 'PRESS', "alt": True},
- {"properties":
- [("data_path", 'tool_settings.transform_pivot_point'),
- ("value", 'ACTIVE_ELEMENT'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'SPACE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.show_manipulator'),
- ],
- },
- ),
- ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
- ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
- ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
- ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
- ("transform.bend", {"type": 'W', "value": 'PRESS', "shift": True}, 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.select_orientation", {"type": 'SPACE', "value": 'PRESS', "alt": True}, None),
- ("transform.create_orientation",
- {"type": 'SPACE', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("use", True),
- ],
- },
- ),
- ("transform.mirror", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
- ("wm.context_toggle",
- {"type": 'TAB', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.use_snap'),
- ],
- },
- ),
- ("wm.context_menu_enum",
- {"type": 'TAB', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("data_path", 'tool_settings.snap_element'),
- ],
- },
- ),
- ("object.transform_axis_target", {"type": 'T', "value": 'PRESS', "shift": True}, None),
- ("transform.translate",
- {"type": 'T', "value": 'PRESS', "shift": True},
- {"properties":
- [("texture_space", True),
- ],
- },
- ),
- ("transform.resize",
- {"type": 'T', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("texture_space", True),
- ],
- },
- ),
- ("transform.skin_resize", {"type": 'A', "value": 'PRESS', "ctrl": True}, None),
- ],
- },
- ),
- ("Manipulators",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [],
- },
- ),
- ("Backdrop Transform Widget",
- {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("Backdrop Crop Widget",
- {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("Sun Beams Widget",
- {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("Corner Pin Widget",
- {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("UV Transform Manipulator",
- {"space_type": 'IMAGE_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("Spot Light Widgets",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("Area Light Widgets",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("Target Light Widgets",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("Force Field Widgets",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("Camera Widgets",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("Camera View Widgets",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("Armature Spline Widgets",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("View3D Navigate",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("Animation",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("anim.change_frame", {"type": 'ACTIONMOUSE', "value": 'PRESS'}, None),
- ("wm.context_toggle",
- {"type": 'T', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.show_seconds'),
- ],
- },
- ),
- ("anim.previewrange_set", {"type": 'P', "value": 'PRESS'}, None),
- ("anim.previewrange_clear", {"type": 'P', "value": 'PRESS', "alt": True}, None),
- ],
- },
- ),
- ("Animation Channels",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("anim.channels_click", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
- ("anim.channels_click",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("anim.channels_click",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("children_only", True),
- ],
- },
- ),
- ("anim.channels_rename", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("anim.channels_rename", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'}, None),
- ("anim.channel_select_keys", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'}, None),
- ("anim.channel_select_keys",
- {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK', "shift": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("anim.channels_find", {"type": 'F', "value": 'PRESS', "ctrl": True}, None),
- ("anim.channels_select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("anim.channels_select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("anim.channels_select_box", {"type": 'B', "value": 'PRESS'}, None),
- ("anim.channels_select_box", {"type": 'EVT_TWEAK_L', "value": 'ANY'}, None),
- ("anim.channels_delete", {"type": 'X', "value": 'PRESS'}, None),
- ("anim.channels_delete", {"type": 'DEL', "value": 'PRESS'}, None),
- ("anim.channels_setting_toggle", {"type": 'W', "value": 'PRESS', "shift": True}, None),
- ("anim.channels_setting_enable", {"type": 'W', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("anim.channels_setting_disable", {"type": 'W', "value": 'PRESS', "alt": True}, None),
- ("anim.channels_editable_toggle", {"type": 'TAB', "value": 'PRESS'}, None),
- ("anim.channels_expand", {"type": 'NUMPAD_PLUS', "value": 'PRESS'}, None),
- ("anim.channels_collapse", {"type": 'NUMPAD_MINUS', "value": 'PRESS'}, None),
- ("anim.channels_expand",
- {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("all", False),
- ],
- },
- ),
- ("anim.channels_collapse",
- {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("all", False),
- ],
- },
- ),
- ("anim.channels_move",
- {"type": 'PAGE_UP', "value": 'PRESS'},
- {"properties":
- [("direction", 'UP'),
- ],
- },
- ),
- ("anim.channels_move",
- {"type": 'PAGE_DOWN', "value": 'PRESS'},
- {"properties":
- [("direction", 'DOWN'),
- ],
- },
- ),
- ("anim.channels_move",
- {"type": 'PAGE_UP', "value": 'PRESS', "shift": True},
- {"properties":
- [("direction", 'TOP'),
- ],
- },
- ),
- ("anim.channels_move",
- {"type": 'PAGE_DOWN', "value": 'PRESS', "shift": True},
- {"properties":
- [("direction", 'BOTTOM'),
- ],
- },
- ),
- ("anim.channels_group", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
- ("anim.channels_ungroup", {"type": 'G', "value": 'PRESS', "alt": True}, None),
- ],
- },
- ),
- ("UV Editor",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("wm.context_toggle",
- {"type": 'Q', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.use_uv_sculpt'),
- ],
- },
- ),
- ("uv.mark_seam", {"type": 'E', "value": 'PRESS', "ctrl": True}, None),
- ("uv.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS'},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("uv.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("uv.select_loop",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("uv.select_loop",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("uv.select_split", {"type": 'Y', "value": 'PRESS'}, None),
- ("uv.select_box",
- {"type": 'B', "value": 'PRESS'},
- {"properties":
- [("pinned", False),
- ],
- },
- ),
- ("uv.select_box",
- {"type": 'B', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("pinned", True),
- ],
- },
- ),
- ("uv.circle_select", {"type": 'C', "value": 'PRESS'}, None),
- ("uv.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True},
- {"properties":
- [("deselect", False),
- ],
- },
- ),
- ("uv.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True},
- {"properties":
- [("deselect", True),
- ],
- },
- ),
- ("uv.select_linked",
- {"type": 'L', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("extend", True),
- ("deselect", False),
- ],
- },
- ),
- ("uv.select_linked_pick",
- {"type": 'L', "value": 'PRESS'},
- {"properties":
- [("extend", True),
- ("deselect", False),
- ],
- },
- ),
- ("uv.select_linked",
- {"type": 'L', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("extend", False),
- ("deselect", True),
- ],
- },
- ),
- ("uv.select_linked_pick",
- {"type": 'L', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", False),
- ("deselect", True),
- ],
- },
- ),
- ("uv.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
- ("uv.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
- ("uv.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("uv.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("uv.select_pinned", {"type": 'P', "value": 'PRESS', "shift": True}, None),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS'},
- {"properties":
- [("name", 'IMAGE_MT_uvs_weldalign'),
- ],
- },
- ),
- ("uv.stitch", {"type": 'V', "value": 'PRESS'}, None),
- ("uv.pin",
- {"type": 'P', "value": 'PRESS'},
- {"properties":
- [("clear", False),
- ],
- },
- ),
- ("uv.pin",
- {"type": 'P', "value": 'PRESS', "alt": True},
- {"properties":
- [("clear", True),
- ],
- },
- ),
- ("uv.unwrap", {"type": 'E', "value": 'PRESS'}, None),
- ("uv.minimize_stretch", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
- ("uv.pack_islands", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
- ("uv.average_islands_scale", {"type": 'A', "value": 'PRESS', "ctrl": True}, None),
- ("uv.hide",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("unselected", False),
- ],
- },
- ),
- ("uv.hide",
- {"type": 'H', "value": 'PRESS', "shift": True},
- {"properties":
- [("unselected", True),
- ],
- },
- ),
- ("uv.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
- ("uv.cursor_set", {"type": 'ACTIONMOUSE', "value": 'PRESS'}, None),
- ("wm.call_menu",
- {"type": 'S', "value": 'PRESS', "shift": True},
- {"properties":
- [("name", 'IMAGE_MT_uvs_snap'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'TAB', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("name", 'IMAGE_MT_uvs_select_mode'),
- ],
- },
- ),
- ("wm.context_cycle_enum",
- {"type": 'O', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit_falloff'),
- ("wrap", True),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'O', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit'),
- ("value_1", 'DISABLED'),
- ("value_2", 'ENABLED'),
- ],
- },
- ),
- ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
- ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
- ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
- ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
- ("transform.shear", {"type": 'S', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
- ("transform.mirror", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
- ("wm.context_toggle",
- {"type": 'TAB', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.use_snap'),
- ],
- },
- ),
- ("wm.context_menu_enum",
- {"type": 'TAB', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("data_path", 'tool_settings.snap_uv_element'),
- ],
- },
- ),
- ],
- },
- ),
- ("UV Sculpt",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("wm.context_toggle",
- {"type": 'Q', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.use_uv_sculpt'),
- ],
- },
- ),
- ("sculpt.uv_sculpt_stroke",
- {"type": 'LEFTMOUSE', "value": 'PRESS'},
- {"properties":
- [("mode", 'NORMAL'),
- ],
- },
- ),
- ("sculpt.uv_sculpt_stroke",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'INVERT'),
- ],
- },
- ),
- ("sculpt.uv_sculpt_stroke",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'RELAX'),
- ],
- },
- ),
- ("brush.scale_size",
- {"type": 'LEFT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("scalar", 0.9),
- ],
- },
- ),
- ("brush.scale_size",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("scalar", 1.1111112),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS'},
- {"properties":
- [("data_path_primary", 'tool_settings.uv_sculpt.brush.size'),
- ("data_path_secondary", 'tool_settings.unified_paint_settings.size'),
- ("use_secondary", 'tool_settings.unified_paint_settings.use_unified_size'),
- ("rotation_path", 'tool_settings.uv_sculpt.brush.texture_slot.angle'),
- ("color_path", 'tool_settings.uv_sculpt.brush.cursor_color_add'),
- ("fill_color_path", ''),
- ("fill_color_override_path", ''),
- ("fill_color_override_test_path", ''),
- ("zoom_path", ''),
- ("image_id", 'tool_settings.uv_sculpt.brush'),
- ("secondary_tex", False),
- ],
- },
- ),
- ("wm.radial_control",
- {"type": 'F', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path_primary", 'tool_settings.uv_sculpt.brush.strength'),
- ("data_path_secondary", 'tool_settings.unified_paint_settings.strength'),
- ("use_secondary", 'tool_settings.unified_paint_settings.use_unified_strength'),
- ("rotation_path", 'tool_settings.uv_sculpt.brush.texture_slot.angle'),
- ("color_path", 'tool_settings.uv_sculpt.brush.cursor_color_add'),
- ("fill_color_path", ''),
- ("fill_color_override_path", ''),
- ("fill_color_override_test_path", ''),
- ("zoom_path", ''),
- ("image_id", 'tool_settings.uv_sculpt.brush'),
- ("secondary_tex", False),
- ],
- },
- ),
- ("brush.uv_sculpt_tool_set",
- {"type": 'S', "value": 'PRESS'},
- {"properties":
- [("tool", 'RELAX'),
- ],
- },
- ),
- ("brush.uv_sculpt_tool_set",
- {"type": 'P', "value": 'PRESS'},
- {"properties":
- [("tool", 'PINCH'),
- ],
- },
- ),
- ("brush.uv_sculpt_tool_set",
- {"type": 'G', "value": 'PRESS'},
- {"properties":
- [("tool", 'GRAB'),
- ],
- },
- ),
- ],
- },
- ),
- ("Mask Editing",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("mask.new", {"type": 'N', "value": 'PRESS', "alt": True}, None),
- ("wm.call_menu",
- {"type": 'A', "value": 'PRESS', "shift": True},
- {"properties":
- [("name", 'MASK_MT_add'),
- ],
- },
- ),
- ("wm.context_cycle_enum",
- {"type": 'O', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.proportional_edit_falloff'),
- ("wrap", True),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'O', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.use_proportional_edit_mask'),
- ],
- },
- ),
- ("mask.add_vertex_slide", {"type": 'ACTIONMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("mask.add_feather_vertex_slide", {"type": 'ACTIONMOUSE', "value": 'PRESS', "shift": True}, None),
- ("mask.delete", {"type": 'X', "value": 'PRESS'}, None),
- ("mask.delete", {"type": 'DEL', "value": 'PRESS'}, None),
- ("mask.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS'},
- {"properties":
- [("extend", False),
- ("deselect", False),
- ("toggle", False),
- ],
- },
- ),
- ("mask.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", False),
- ("deselect", False),
- ("toggle", True),
- ],
- },
- ),
- ("mask.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("mask.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("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": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True, "alt": True},
- {"properties":
- [("deselect", False),
- ],
- },
- ),
- ("mask.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True, "alt": True},
- {"properties":
- [("deselect", True),
- ],
- },
- ),
- ("mask.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
- ("mask.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
- ("mask.hide_view_clear", {"type": 'H', "value": 'PRESS', "alt": True}, None),
- ("mask.hide_view_set",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("unselected", False),
- ],
- },
- ),
- ("mask.hide_view_set",
- {"type": 'H', "value": 'PRESS', "shift": True},
- {"properties":
- [("unselected", True),
- ],
- },
- ),
- ("clip.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("mask.cyclic_toggle", {"type": 'C', "value": 'PRESS', "alt": True}, None),
- ("mask.slide_point", {"type": 'ACTIONMOUSE', "value": 'PRESS'}, None),
- ("mask.slide_spline_curvature", {"type": 'ACTIONMOUSE', "value": 'PRESS'}, None),
- ("mask.handle_type_set", {"type": 'V', "value": 'PRESS'}, None),
- ("mask.normals_make_consistent", {"type": 'N', "value": 'PRESS', "ctrl": 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),
- ("uv.cursor_set", {"type": 'ACTIONMOUSE', "value": 'PRESS'}, None),
- ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
- ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
- ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
- ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
- ("transform.transform",
- {"type": 'S', "value": 'PRESS', "alt": True},
- {"properties":
- [("mode", 'MASK_SHRINKFATTEN'),
- ],
- },
- ),
- ],
- },
- ),
- ("Markers",
- {"space_type": 'EMPTY', "region_type": 'WINDOW'},
- {"items":
- [("marker.add", {"type": 'M', "value": 'PRESS'}, None),
- ("marker.move", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
- ("marker.duplicate", {"type": 'D', "value": 'PRESS', "shift": True}, None),
- ("marker.select", {"type": 'SELECTMOUSE', "value": 'PRESS'}, None),
- ("marker.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("marker.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("extend", False),
- ("camera", True),
- ],
- },
- ),
- ("marker.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("extend", True),
- ("camera", True),
- ],
- },
- ),
- ("marker.select_box", {"type": 'B', "value": 'PRESS'}, None),
- ("marker.select_all", {"type": 'A', "value": 'PRESS'}, None),
- ("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),
- ],
- },
- ),
- ("Graph Editor Generic",
- {"space_type": 'GRAPH_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("graph.properties", {"type": 'N', "value": 'PRESS'}, None),
- ("graph.extrapolation_type", {"type": 'E', "value": 'PRESS', "shift": True}, None),
- ("anim.channels_find", {"type": 'F', "value": 'PRESS', "ctrl": True}, None),
- ("graph.hide",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("unselected", False),
- ],
- },
- ),
- ("graph.hide",
- {"type": 'H', "value": 'PRESS', "shift": True},
- {"properties":
- [("unselected", True),
- ],
- },
- ),
- ("graph.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
- ],
- },
- ),
- ("Graph Editor",
- {"space_type": 'GRAPH_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("wm.context_toggle",
- {"type": 'H', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.show_handles'),
- ],
- },
- ),
- ("graph.cursor_set", {"type": 'ACTIONMOUSE', "value": 'PRESS'}, None),
- ("graph.clickselect",
- {"type": 'SELECTMOUSE', "value": 'PRESS'},
- {"properties":
- [("extend", False),
- ("column", False),
- ("curves", False),
- ],
- },
- ),
- ("graph.clickselect",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("extend", False),
- ("column", True),
- ("curves", False),
- ],
- },
- ),
- ("graph.clickselect",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ("column", False),
- ("curves", False),
- ],
- },
- ),
- ("graph.clickselect",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("extend", True),
- ("column", True),
- ("curves", False),
- ],
- },
- ),
- ("graph.clickselect",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("extend", False),
- ("column", False),
- ("curves", True),
- ],
- },
- ),
- ("graph.clickselect",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
- {"properties":
- [("extend", True),
- ("column", False),
- ("curves", True),
- ],
- },
- ),
- ("graph.select_leftright",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'CHECK'),
- ("extend", False),
- ],
- },
- ),
- ("graph.select_leftright",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("mode", 'CHECK'),
- ("extend", True),
- ],
- },
- ),
- ("graph.select_leftright",
- {"type": 'LEFT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("mode", 'LEFT'),
- ("extend", False),
- ],
- },
- ),
- ("graph.select_leftright",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("mode", 'RIGHT'),
- ("extend", False),
- ],
- },
- ),
- ("graph.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("graph.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("graph.select_box",
- {"type": 'B', "value": 'PRESS'},
- {"properties":
- [("axis_range", False),
- ("include_handles", False),
- ],
- },
- ),
- ("graph.select_box",
- {"type": 'B', "value": 'PRESS', "alt": True},
- {"properties":
- [("axis_range", True),
- ("include_handles", False),
- ],
- },
- ),
- ("graph.select_box",
- {"type": 'B', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("axis_range", False),
- ("include_handles", True),
- ],
- },
- ),
- ("graph.select_box",
- {"type": 'B', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("axis_range", True),
- ("include_handles", True),
- ],
- },
- ),
- ("graph.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True},
- {"properties":
- [("deselect", False),
- ],
- },
- ),
- ("graph.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True},
- {"properties":
- [("deselect", True),
- ],
- },
- ),
- ("graph.select_circle", {"type": 'C', "value": 'PRESS'}, None),
- ("graph.select_column",
- {"type": 'K', "value": 'PRESS'},
- {"properties":
- [("mode", 'KEYS'),
- ],
- },
- ),
- ("graph.select_column",
- {"type": 'K', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'CFRA'),
- ],
- },
- ),
- ("graph.select_column",
- {"type": 'K', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'MARKERS_COLUMN'),
- ],
- },
- ),
- ("graph.select_column",
- {"type": 'K', "value": 'PRESS', "alt": True},
- {"properties":
- [("mode", 'MARKERS_BETWEEN'),
- ],
- },
- ),
- ("graph.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
- ("graph.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
- ("graph.select_linked", {"type": 'L', "value": 'PRESS'}, None),
- ("graph.frame_jump", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
- ("graph.snap", {"type": 'S', "value": 'PRESS', "shift": True}, None),
- ("graph.mirror", {"type": 'M', "value": 'PRESS', "shift": True}, None),
- ("graph.handle_type", {"type": 'V', "value": 'PRESS'}, None),
- ("graph.interpolation_type", {"type": 'T', "value": 'PRESS'}, None),
- ("graph.easing_type", {"type": 'E', "value": 'PRESS', "ctrl": True}, None),
- ("graph.smooth", {"type": 'O', "value": 'PRESS', "alt": True}, None),
- ("graph.sample", {"type": 'O', "value": 'PRESS', "shift": True}, None),
- ("graph.bake", {"type": 'C', "value": 'PRESS', "alt": True}, None),
- ("wm.call_menu",
- {"type": 'X', "value": 'PRESS'},
- {"properties":
- [("name", 'GRAPH_MT_delete'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'DEL', "value": 'PRESS'},
- {"properties":
- [("name", 'GRAPH_MT_delete'),
- ],
- },
- ),
- ("graph.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
- ("graph.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None),
- ("graph.click_insert",
- {"type": 'ACTIONMOUSE', "value": 'CLICK', "ctrl": True},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("graph.click_insert",
- {"type": 'ACTIONMOUSE', "value": 'CLICK', "shift": True, "ctrl": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("graph.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
- ("graph.paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
- ("graph.paste",
- {"type": 'V', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("flipped", True),
- ],
- },
- ),
- ("graph.previewrange_set", {"type": 'P', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("graph.view_all", {"type": 'HOME', "value": 'PRESS'}, None),
- ("graph.view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
- ("graph.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
- ("graph.view_frame", {"type": 'NUMPAD_0', "value": 'PRESS'}, None),
- ("graph.fmodifier_add",
- {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("only_active", False),
- ],
- },
- ),
- ("anim.channels_editable_toggle", {"type": 'TAB', "value": 'PRESS'}, None),
- ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
- ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
- ("transform.transform",
- {"type": 'E', "value": 'PRESS'},
- {"properties":
- [("mode", 'TIME_EXTEND'),
- ],
- },
- ),
- ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
- ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
- ("wm.context_toggle",
- {"type": 'O', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.use_proportional_fcurve'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'COMMA', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.pivot_point'),
- ("value", 'BOUNDING_BOX_CENTER'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'PERIOD', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.pivot_point'),
- ("value", 'CURSOR'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'PERIOD', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.pivot_point'),
- ("value", 'INDIVIDUAL_ORIGINS'),
- ],
- },
- ),
- ("marker.add", {"type": 'M', "value": 'PRESS'}, None),
- ("marker.rename", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
- ],
- },
- ),
- ("Image Generic",
- {"space_type": 'IMAGE_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("image.new", {"type": 'N', "value": 'PRESS', "alt": True}, None),
- ("image.open", {"type": 'O', "value": 'PRESS', "alt": True}, None),
- ("image.reload", {"type": 'R', "value": 'PRESS', "alt": True}, None),
- ("image.read_viewlayers", {"type": 'R', "value": 'PRESS', "ctrl": True}, None),
- ("image.save", {"type": 'S', "value": 'PRESS', "alt": True}, None),
- ("image.save_as", {"type": 'F3', "value": 'PRESS'}, None),
- ("image.properties", {"type": 'N', "value": 'PRESS'}, None),
- ("image.toolshelf", {"type": 'T', "value": 'PRESS'}, None),
- ("image.cycle_render_slot", {"type": 'J', "value": 'PRESS'}, None),
- ("image.cycle_render_slot",
- {"type": 'J', "value": 'PRESS', "alt": True},
- {"properties":
- [("reverse", True),
- ],
- },
- ),
- ],
- },
- ),
- ("Image",
- {"space_type": 'IMAGE_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("image.view_all", {"type": 'HOME', "value": 'PRESS'}, None),
- ("image.view_all",
- {"type": 'HOME', "value": 'PRESS', "shift": True},
- {"properties":
- [("fit_view", True),
- ],
- },
- ),
- ("image.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
- ("image.view_pan", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
- ("image.view_pan", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True}, None),
- ("image.view_pan", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
- ("image.view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
- ("image.view_ndof", {"type": 'NDOF_MOTION', "value": 'ANY'}, None),
- ("image.view_zoom_in", {"type": 'WHEELINMOUSE', "value": 'PRESS'}, None),
- ("image.view_zoom_out", {"type": 'WHEELOUTMOUSE', "value": 'PRESS'}, None),
- ("image.view_zoom_in", {"type": 'NUMPAD_PLUS', "value": 'PRESS'}, None),
- ("image.view_zoom_out", {"type": 'NUMPAD_MINUS', "value": 'PRESS'}, None),
- ("image.view_zoom", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("image.view_zoom", {"type": 'TRACKPADZOOM', "value": 'ANY'}, None),
- ("image.view_zoom", {"type": 'TRACKPADPAN', "value": 'ANY', "ctrl": True}, None),
- ("image.view_zoom_border", {"type": 'B', "value": 'PRESS', "shift": True}, None),
- ("image.view_zoom_ratio",
- {"type": 'NUMPAD_8', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("ratio", 8.0),
- ],
- },
- ),
- ("image.view_zoom_ratio",
- {"type": 'NUMPAD_4', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("ratio", 4.0),
- ],
- },
- ),
- ("image.view_zoom_ratio",
- {"type": 'NUMPAD_2', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("ratio", 2.0),
- ],
- },
- ),
- ("image.view_zoom_ratio",
- {"type": 'NUMPAD_8', "value": 'PRESS', "shift": True},
- {"properties":
- [("ratio", 8.0),
- ],
- },
- ),
- ("image.view_zoom_ratio",
- {"type": 'NUMPAD_4', "value": 'PRESS', "shift": True},
- {"properties":
- [("ratio", 4.0),
- ],
- },
- ),
- ("image.view_zoom_ratio",
- {"type": 'NUMPAD_2', "value": 'PRESS', "shift": True},
- {"properties":
- [("ratio", 2.0),
- ],
- },
- ),
- ("image.view_zoom_ratio",
- {"type": 'NUMPAD_1', "value": 'PRESS'},
- {"properties":
- [("ratio", 1.0),
- ],
- },
- ),
- ("image.view_zoom_ratio",
- {"type": 'NUMPAD_2', "value": 'PRESS'},
- {"properties":
- [("ratio", 0.5),
- ],
- },
- ),
- ("image.view_zoom_ratio",
- {"type": 'NUMPAD_4', "value": 'PRESS'},
- {"properties":
- [("ratio", 0.25),
- ],
- },
- ),
- ("image.view_zoom_ratio",
- {"type": 'NUMPAD_8', "value": 'PRESS'},
- {"properties":
- [("ratio", 0.125),
- ],
- },
- ),
- ("image.change_frame", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
- ("image.sample", {"type": 'ACTIONMOUSE', "value": 'PRESS'}, None),
- ("image.curves_point_set",
- {"type": 'ACTIONMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("point", 'BLACK_POINT'),
- ],
- },
- ),
- ("image.curves_point_set",
- {"type": 'ACTIONMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("point", 'WHITE_POINT'),
- ],
- },
- ),
- ("object.mode_set",
- {"type": 'TAB', "value": 'PRESS'},
- {"properties":
- [("mode", 'EDIT'),
- ("toggle", True),
- ],
- },
- ),
- ("wm.context_set_int",
- {"type": 'ONE', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.image.render_slots.active_index'),
- ("value", 0),
- ],
- },
- ),
- ("wm.context_set_int",
- {"type": 'TWO', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.image.render_slots.active_index'),
- ("value", 1),
- ],
- },
- ),
- ("wm.context_set_int",
- {"type": 'THREE', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.image.render_slots.active_index'),
- ("value", 2),
- ],
- },
- ),
- ("wm.context_set_int",
- {"type": 'FOUR', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.image.render_slots.active_index'),
- ("value", 3),
- ],
- },
- ),
- ("wm.context_set_int",
- {"type": 'FIVE', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.image.render_slots.active_index'),
- ("value", 4),
- ],
- },
- ),
- ("wm.context_set_int",
- {"type": 'SIX', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.image.render_slots.active_index'),
- ("value", 5),
- ],
- },
- ),
- ("wm.context_set_int",
- {"type": 'SEVEN', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.image.render_slots.active_index'),
- ("value", 6),
- ],
- },
- ),
- ("wm.context_set_int",
- {"type": 'EIGHT', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.image.render_slots.active_index'),
- ("value", 7),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'COMMA', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.pivot_point'),
- ("value", 'CENTER'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'COMMA', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.pivot_point'),
- ("value", 'MEDIAN'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'PERIOD', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.pivot_point'),
- ("value", 'CURSOR'),
- ],
- },
- ),
- ("image.render_border", {"type": 'B', "value": 'PRESS', "ctrl": True}, None),
- ("image.clear_render_border", {"type": 'B', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ],
- },
- ),
- ("Node Generic",
- {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("node.properties", {"type": 'N', "value": 'PRESS'}, None),
- ("node.toolbar", {"type": 'T', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("Node Editor",
- {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("node.select",
- {"type": 'ACTIONMOUSE', "value": 'PRESS'},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("node.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS'},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("node.select",
- {"type": 'ACTIONMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("node.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("node.select",
- {"type": 'ACTIONMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("node.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("node.select",
- {"type": 'ACTIONMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("node.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("node.select",
- {"type": 'ACTIONMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("node.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("node.select",
- {"type": 'ACTIONMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("node.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("node.select",
- {"type": 'ACTIONMOUSE', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("node.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("node.select",
- {"type": 'ACTIONMOUSE', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("node.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("node.select_box",
- {"type": 'EVT_TWEAK_S', "value": 'ANY'},
- {"properties":
- [("tweak", True),
- ],
- },
- ),
- ("node.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True, "alt": True},
- {"properties":
- [("deselect", False),
- ],
- },
- ),
- ("node.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True, "alt": True},
- {"properties":
- [("deselect", True),
- ],
- },
- ),
- ("node.select_circle", {"type": 'C', "value": 'PRESS'}, None),
- ("node.link",
- {"type": 'LEFTMOUSE', "value": 'PRESS'},
- {"properties":
- [("detach", False),
- ],
- },
- ),
- ("node.link",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("detach", True),
- ],
- },
- ),
- ("node.resize", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
- ("node.add_reroute", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True}, None),
- ("node.links_cut", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("node.select_link_viewer", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("node.backimage_move", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "alt": True}, None),
- ("node.backimage_zoom",
- {"type": 'V', "value": 'PRESS'},
- {"properties":
- [("factor", 0.8333333),
- ],
- },
- ),
- ("node.backimage_zoom",
- {"type": 'V', "value": 'PRESS', "alt": True},
- {"properties":
- [("factor", 1.2),
- ],
- },
- ),
- ("node.backimage_fit", {"type": 'HOME', "value": 'PRESS', "alt": True}, None),
- ("node.backimage_sample", {"type": 'ACTIONMOUSE', "value": 'PRESS', "alt": True}, None),
- ("node.link_make",
- {"type": 'F', "value": 'PRESS'},
- {"properties":
- [("replace", False),
- ],
- },
- ),
- ("node.link_make",
- {"type": 'F', "value": 'PRESS', "shift": True},
- {"properties":
- [("replace", True),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'A', "value": 'PRESS', "shift": True},
- {"properties":
- [("name", 'NODE_MT_add'),
- ],
- },
- ),
- ("node.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
- ("node.duplicate_move_keep_inputs", {"type": 'D', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("node.parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
- ("node.detach", {"type": 'P', "value": 'PRESS', "alt": True}, None),
- ("node.join", {"type": 'J', "value": 'PRESS', "ctrl": True}, None),
- ("node.hide_toggle", {"type": 'H', "value": 'PRESS'}, None),
- ("node.mute_toggle", {"type": 'M', "value": 'PRESS'}, None),
- ("node.preview_toggle", {"type": 'H', "value": 'PRESS', "shift": True}, None),
- ("node.hide_socket_toggle", {"type": 'H', "value": 'PRESS', "ctrl": True}, None),
- ("node.view_all", {"type": 'HOME', "value": 'PRESS'}, None),
- ("node.view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
- ("node.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
- ("node.select_box",
- {"type": 'B', "value": 'PRESS'},
- {"properties":
- [("tweak", False),
- ],
- },
- ),
- ("node.delete", {"type": 'X', "value": 'PRESS'}, None),
- ("node.delete", {"type": 'DEL', "value": 'PRESS'}, None),
- ("node.delete_reconnect", {"type": 'X', "value": 'PRESS', "ctrl": True}, None),
- ("node.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("node.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("node.select_linked_to", {"type": 'L', "value": 'PRESS', "shift": True}, None),
- ("node.select_linked_from", {"type": 'L', "value": 'PRESS'}, None),
- ("node.select_grouped",
- {"type": 'G', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("node.select_grouped",
- {"type": 'G', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("node.select_same_type_step",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS', "shift": True},
- {"properties":
- [("prev", False),
- ],
- },
- ),
- ("node.select_same_type_step",
- {"type": 'LEFT_BRACKET', "value": 'PRESS', "shift": True},
- {"properties":
- [("prev", True),
- ],
- },
- ),
- ("node.find_node", {"type": 'F', "value": 'PRESS', "ctrl": True}, None),
- ("node.group_make", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
- ("node.group_ungroup", {"type": 'G', "value": 'PRESS', "alt": True}, None),
- ("node.group_separate", {"type": 'P', "value": 'PRESS'}, None),
- ("node.group_edit",
- {"type": 'TAB', "value": 'PRESS'},
- {"properties":
- [("exit", False),
- ],
- },
- ),
- ("node.group_edit",
- {"type": 'TAB', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("exit", True),
- ],
- },
- ),
- ("node.read_viewlayers", {"type": 'R', "value": 'PRESS', "ctrl": True}, None),
- ("node.render_changed", {"type": 'Z', "value": 'PRESS'}, None),
- ("node.clipboard_copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
- ("node.clipboard_paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
- ("node.viewer_border", {"type": 'B', "value": 'PRESS', "ctrl": True}, None),
- ("node.clear_viewer_border", {"type": 'B', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("node.translate_attach", {"type": 'G', "value": 'PRESS'}, None),
- ("node.translate_attach", {"type": 'EVT_TWEAK_A', "value": 'ANY'}, None),
- ("node.translate_attach", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
- ("transform.translate",
- {"type": 'G', "value": 'PRESS'},
- {"properties":
- [("release_confirm", True),
- ],
- },
- ),
- ("transform.translate",
- {"type": 'EVT_TWEAK_A', "value": 'ANY'},
- {"properties":
- [("release_confirm", True),
- ],
- },
- ),
- ("transform.translate",
- {"type": 'EVT_TWEAK_S', "value": 'ANY'},
- {"properties":
- [("release_confirm", True),
- ],
- },
- ),
- ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
- ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
- ("node.move_detach_links", {"type": 'D', "value": 'PRESS', "alt": True}, None),
- ("node.move_detach_links_release", {"type": 'EVT_TWEAK_A', "value": 'ANY', "alt": True}, None),
- ("node.move_detach_links", {"type": 'EVT_TWEAK_S', "value": 'ANY', "alt": True}, None),
- ("wm.context_toggle",
- {"type": 'TAB', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'tool_settings.use_snap'),
- ],
- },
- ),
- ("wm.context_menu_enum",
- {"type": 'TAB', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("data_path", 'tool_settings.snap_node_element'),
- ],
- },
- ),
- ],
- },
- ),
- ("File Browser",
- {"space_type": 'FILE_BROWSER', "region_type": 'WINDOW'},
- {"items":
- [("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),
- ("file.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),
- ("wm.context_toggle",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.params.show_hidden'),
- ],
- },
- ),
- ("file.directory_new", {"type": 'I', "value": 'PRESS'}, None),
- ("file.delete", {"type": 'X', "value": 'PRESS'}, None),
- ("file.delete", {"type": 'DEL', "value": 'PRESS'}, None),
- ("file.smoothscroll", {"type": 'TIMER1', "value": 'ANY', "any": True}, None),
- ("file.bookmark_toggle", {"type": 'T', "value": 'PRESS'}, None),
- ("file.bookmark_add", {"type": 'B', "value": 'PRESS', "ctrl": True}, None),
- ],
- },
- ),
- ("File Browser Main",
- {"space_type": 'FILE_BROWSER', "region_type": 'WINDOW'},
- {"items":
- [("file.execute",
- {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'},
- {"properties":
- [("need_active", True),
- ],
- },
- ),
- ("file.refresh", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
- ("file.select", {"type": 'LEFTMOUSE', "value": 'CLICK'}, None),
- ("file.select",
- {"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("file.select",
- {"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True, "ctrl": True},
- {"properties":
- [("extend", True),
- ("fill", True),
- ],
- },
- ),
- ("file.select",
- {"type": 'RIGHTMOUSE', "value": 'CLICK'},
- {"properties":
- [("open", False),
- ],
- },
- ),
- ("file.select",
- {"type": 'RIGHTMOUSE', "value": 'CLICK', "shift": True},
- {"properties":
- [("extend", True),
- ("open", False),
- ],
- },
- ),
- ("file.select",
- {"type": 'RIGHTMOUSE', "value": 'CLICK', "alt": True},
- {"properties":
- [("extend", True),
- ("fill", True),
- ("open", False),
- ],
- },
- ),
- ("file.select_walk",
- {"type": 'UP_ARROW', "value": 'PRESS'},
- {"properties":
- [("direction", 'UP'),
- ],
- },
- ),
- ("file.select_walk",
- {"type": 'UP_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("direction", 'UP'),
- ("extend", True),
- ],
- },
- ),
- ("file.select_walk",
- {"type": 'UP_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("direction", 'UP'),
- ("extend", True),
- ("fill", True),
- ],
- },
- ),
- ("file.select_walk",
- {"type": 'DOWN_ARROW', "value": 'PRESS'},
- {"properties":
- [("direction", 'DOWN'),
- ],
- },
- ),
- ("file.select_walk",
- {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("direction", 'DOWN'),
- ("extend", True),
- ],
- },
- ),
- ("file.select_walk",
- {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("direction", 'DOWN'),
- ("extend", True),
- ("fill", True),
- ],
- },
- ),
- ("file.select_walk",
- {"type": 'LEFT_ARROW', "value": 'PRESS'},
- {"properties":
- [("direction", 'LEFT'),
- ],
- },
- ),
- ("file.select_walk",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("direction", 'LEFT'),
- ("extend", True),
- ],
- },
- ),
- ("file.select_walk",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("direction", 'LEFT'),
- ("extend", True),
- ("fill", True),
- ],
- },
- ),
- ("file.select_walk",
- {"type": 'RIGHT_ARROW', "value": 'PRESS'},
- {"properties":
- [("direction", 'RIGHT'),
- ],
- },
- ),
- ("file.select_walk",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("direction", 'RIGHT'),
- ("extend", True),
- ],
- },
- ),
- ("file.select_walk",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("direction", 'RIGHT'),
- ("extend", True),
- ("fill", True),
- ],
- },
- ),
- ("file.previous", {"type": 'BUTTON4MOUSE', "value": 'CLICK'}, None),
- ("file.next", {"type": 'BUTTON5MOUSE', "value": 'CLICK'}, None),
- ("file.select_all_toggle", {"type": 'A', "value": 'PRESS'}, None),
- ("file.select_box", {"type": 'B', "value": 'PRESS'}, None),
- ("file.select_box", {"type": 'EVT_TWEAK_L', "value": 'ANY'}, None),
- ("file.rename", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("file.highlight", {"type": 'MOUSEMOVE', "value": 'ANY', "any": True}, None),
- ("file.filenum",
- {"type": 'NUMPAD_PLUS', "value": 'PRESS'},
- {"properties":
- [("increment", 1),
- ],
- },
- ),
- ("file.filenum",
- {"type": 'NUMPAD_PLUS', "value": 'PRESS', "shift": True},
- {"properties":
- [("increment", 10),
- ],
- },
- ),
- ("file.filenum",
- {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("increment", 100),
- ],
- },
- ),
- ("file.filenum",
- {"type": 'NUMPAD_MINUS', "value": 'PRESS'},
- {"properties":
- [("increment", -1),
- ],
- },
- ),
- ("file.filenum",
- {"type": 'NUMPAD_MINUS', "value": 'PRESS', "shift": True},
- {"properties":
- [("increment", -10),
- ],
- },
- ),
- ("file.filenum",
- {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("increment", -100),
- ],
- },
- ),
- ],
- },
- ),
- ("File Browser Buttons",
- {"space_type": 'FILE_BROWSER', "region_type": 'WINDOW'},
- {"items":
- [("file.filenum",
- {"type": 'NUMPAD_PLUS', "value": 'PRESS'},
- {"properties":
- [("increment", 1),
- ],
- },
- ),
- ("file.filenum",
- {"type": 'NUMPAD_PLUS', "value": 'PRESS', "shift": True},
- {"properties":
- [("increment", 10),
- ],
- },
- ),
- ("file.filenum",
- {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("increment", 100),
- ],
- },
- ),
- ("file.filenum",
- {"type": 'NUMPAD_MINUS', "value": 'PRESS'},
- {"properties":
- [("increment", -1),
- ],
- },
- ),
- ("file.filenum",
- {"type": 'NUMPAD_MINUS', "value": 'PRESS', "shift": True},
- {"properties":
- [("increment", -10),
- ],
- },
- ),
- ("file.filenum",
- {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("increment", -100),
- ],
- },
- ),
- ],
- },
- ),
- ("Dopesheet Generic",
- {"space_type": 'DOPESHEET_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("action.properties", {"type": 'N', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("Dopesheet",
- {"space_type": 'DOPESHEET_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("action.clickselect",
- {"type": 'SELECTMOUSE', "value": 'PRESS'},
- {"properties":
- [("extend", False),
- ("column", False),
- ("channel", False),
- ],
- },
- ),
- ("action.clickselect",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("extend", False),
- ("column", True),
- ("channel", False),
- ],
- },
- ),
- ("action.clickselect",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ("column", False),
- ("channel", False),
- ],
- },
- ),
- ("action.clickselect",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("extend", True),
- ("column", True),
- ("channel", False),
- ],
- },
- ),
- ("action.clickselect",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
- {"properties":
- [("extend", False),
- ("column", False),
- ("channel", True),
- ],
- },
- ),
- ("action.clickselect",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
- {"properties":
- [("extend", True),
- ("column", False),
- ("channel", True),
- ],
- },
- ),
- ("action.select_leftright",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'CHECK'),
- ("extend", False),
- ],
- },
- ),
- ("action.select_leftright",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("mode", 'CHECK'),
- ("extend", True),
- ],
- },
- ),
- ("action.select_leftright",
- {"type": 'LEFT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("mode", 'LEFT'),
- ("extend", False),
- ],
- },
- ),
- ("action.select_leftright",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("mode", 'RIGHT'),
- ("extend", False),
- ],
- },
- ),
- ("action.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("action.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("action.select_box",
- {"type": 'B', "value": 'PRESS'},
- {"properties":
- [("axis_range", False),
- ],
- },
- ),
- ("action.select_box",
- {"type": 'B', "value": 'PRESS', "alt": True},
- {"properties":
- [("axis_range", True),
- ],
- },
- ),
- ("action.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True},
- {"properties":
- [("deselect", False),
- ],
- },
- ),
- ("action.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True},
- {"properties":
- [("deselect", True),
- ],
- },
- ),
- ("action.select_circle", {"type": 'C', "value": 'PRESS'}, None),
- ("action.select_column",
- {"type": 'K', "value": 'PRESS'},
- {"properties":
- [("mode", 'KEYS'),
- ],
- },
- ),
- ("action.select_column",
- {"type": 'K', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'CFRA'),
- ],
- },
- ),
- ("action.select_column",
- {"type": 'K', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'MARKERS_COLUMN'),
- ],
- },
- ),
- ("action.select_column",
- {"type": 'K', "value": 'PRESS', "alt": True},
- {"properties":
- [("mode", 'MARKERS_BETWEEN'),
- ],
- },
- ),
- ("action.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
- ("action.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
- ("action.select_linked", {"type": 'L', "value": 'PRESS'}, None),
- ("action.frame_jump", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
- ("action.snap", {"type": 'S', "value": 'PRESS', "shift": True}, None),
- ("action.mirror", {"type": 'M', "value": 'PRESS', "shift": True}, None),
- ("action.handle_type", {"type": 'V', "value": 'PRESS'}, None),
- ("action.interpolation_type", {"type": 'T', "value": 'PRESS'}, None),
- ("action.extrapolation_type", {"type": 'E', "value": 'PRESS', "shift": True}, None),
- ("action.keyframe_type", {"type": 'R', "value": 'PRESS'}, None),
- ("action.sample", {"type": 'O', "value": 'PRESS', "shift": True}, None),
- ("wm.call_menu",
- {"type": 'X', "value": 'PRESS'},
- {"properties":
- [("name", 'DOPESHEET_MT_delete'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'DEL', "value": 'PRESS'},
- {"properties":
- [("name", 'DOPESHEET_MT_delete'),
- ],
- },
- ),
- ("action.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
- ("action.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None),
- ("action.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
- ("action.paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
- ("action.paste",
- {"type": 'V', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("flipped", True),
- ],
- },
- ),
- ("action.previewrange_set", {"type": 'P', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("action.view_all", {"type": 'HOME', "value": 'PRESS'}, None),
- ("action.view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
- ("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),
- ("transform.transform",
- {"type": 'G', "value": 'PRESS'},
- {"properties":
- [("mode", 'TIME_TRANSLATE'),
- ],
- },
- ),
- ("transform.transform",
- {"type": 'EVT_TWEAK_S', "value": 'ANY'},
- {"properties":
- [("mode", 'TIME_TRANSLATE'),
- ],
- },
- ),
- ("transform.transform",
- {"type": 'E', "value": 'PRESS'},
- {"properties":
- [("mode", 'TIME_EXTEND'),
- ],
- },
- ),
- ("transform.transform",
- {"type": 'S', "value": 'PRESS'},
- {"properties":
- [("mode", 'TIME_SCALE'),
- ],
- },
- ),
- ("transform.transform",
- {"type": 'T', "value": 'PRESS', "shift": True},
- {"properties":
- [("mode", 'TIME_SLIDE'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'O', "value": 'PRESS'},
- {"properties":
- [("data_path", 'tool_settings.use_proportional_action'),
- ],
- },
- ),
- ("marker.add", {"type": 'M', "value": 'PRESS'}, None),
- ("marker.rename", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
- ],
- },
- ),
- ("NLA Generic",
- {"space_type": 'NLA_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("nla.properties", {"type": 'N', "value": 'PRESS'}, None),
- ("nla.tweakmode_enter", {"type": 'TAB', "value": 'PRESS'}, None),
- ("nla.tweakmode_exit", {"type": 'TAB', "value": 'PRESS'}, None),
- ("nla.tweakmode_enter",
- {"type": 'TAB', "value": 'PRESS', "shift": True},
- {"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),
- ],
- },
- ),
- ("NLA Channels",
- {"space_type": 'NLA_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("nla.channels_click",
- {"type": 'LEFTMOUSE', "value": 'PRESS'},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("nla.channels_click",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("nla.tracks_add",
- {"type": 'A', "value": 'PRESS', "shift": True},
- {"properties":
- [("above_selected", False),
- ],
- },
- ),
- ("nla.tracks_add",
- {"type": 'A', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("above_selected", True),
- ],
- },
- ),
- ("nla.tracks_delete", {"type": 'X', "value": 'PRESS'}, None),
- ("nla.tracks_delete", {"type": 'DEL', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("NLA Editor",
- {"space_type": 'NLA_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("nla.click_select",
- {"type": 'SELECTMOUSE', "value": 'PRESS'},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("nla.click_select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("nla.select_leftright",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("mode", 'CHECK'),
- ("extend", False),
- ],
- },
- ),
- ("nla.select_leftright",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("mode", 'CHECK'),
- ("extend", True),
- ],
- },
- ),
- ("nla.select_leftright",
- {"type": 'LEFT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("mode", 'LEFT'),
- ("extend", False),
- ],
- },
- ),
- ("nla.select_leftright",
- {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
- {"properties":
- [("mode", 'RIGHT'),
- ("extend", False),
- ],
- },
- ),
- ("nla.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("nla.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("nla.select_box",
- {"type": 'B', "value": 'PRESS'},
- {"properties":
- [("axis_range", False),
- ],
- },
- ),
- ("nla.select_box",
- {"type": 'B', "value": 'PRESS', "alt": True},
- {"properties":
- [("axis_range", True),
- ],
- },
- ),
- ("nla.previewrange_set", {"type": 'P', "value": 'PRESS', "ctrl": True, "alt": True}, None),
- ("nla.view_all", {"type": 'HOME', "value": 'PRESS'}, None),
- ("nla.view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
- ("nla.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
- ("nla.view_frame", {"type": 'NUMPAD_0', "value": 'PRESS'}, None),
- ("nla.actionclip_add", {"type": 'A', "value": 'PRESS', "shift": True}, None),
- ("nla.transition_add", {"type": 'T', "value": 'PRESS', "shift": True}, None),
- ("nla.soundclip_add", {"type": 'K', "value": 'PRESS', "shift": True}, None),
- ("nla.meta_add", {"type": 'G', "value": 'PRESS', "shift": True}, None),
- ("nla.meta_remove", {"type": 'G', "value": 'PRESS', "alt": True}, None),
- ("nla.duplicate",
- {"type": 'D', "value": 'PRESS', "shift": True},
- {"properties":
- [("linked", False),
- ],
- },
- ),
- ("nla.duplicate",
- {"type": 'D', "value": 'PRESS', "alt": True},
- {"properties":
- [("linked", True),
- ],
- },
- ),
- ("nla.make_single_user", {"type": 'U', "value": 'PRESS'}, None),
- ("nla.delete", {"type": 'X', "value": 'PRESS'}, None),
- ("nla.delete", {"type": 'DEL', "value": 'PRESS'}, None),
- ("nla.split", {"type": 'Y', "value": 'PRESS'}, None),
- ("nla.mute_toggle", {"type": 'H', "value": 'PRESS'}, None),
- ("nla.swap", {"type": 'F', "value": 'PRESS', "alt": True}, None),
- ("nla.move_up", {"type": 'PAGE_UP', "value": 'PRESS'}, None),
- ("nla.move_down", {"type": 'PAGE_DOWN', "value": 'PRESS'}, None),
- ("nla.apply_scale", {"type": 'A', "value": 'PRESS', "ctrl": True}, None),
- ("nla.clear_scale", {"type": 'S', "value": 'PRESS', "alt": True}, None),
- ("nla.snap", {"type": 'S', "value": 'PRESS', "shift": True}, None),
- ("nla.fmodifier_add", {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("transform.transform",
- {"type": 'G', "value": 'PRESS'},
- {"properties":
- [("mode", 'TRANSLATION'),
- ],
- },
- ),
- ("transform.transform",
- {"type": 'EVT_TWEAK_S', "value": 'ANY'},
- {"properties":
- [("mode", 'TRANSLATION'),
- ],
- },
- ),
- ("transform.transform",
- {"type": 'E', "value": 'PRESS'},
- {"properties":
- [("mode", 'TIME_EXTEND'),
- ],
- },
- ),
- ("transform.transform",
- {"type": 'S', "value": 'PRESS'},
- {"properties":
- [("mode", 'TIME_SCALE'),
- ],
- },
- ),
- ("marker.add", {"type": 'M', "value": 'PRESS'}, None),
- ("marker.rename", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
- ],
- },
- ),
- ("Text Generic",
- {"space_type": 'TEXT_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("text.start_find", {"type": 'F', "value": 'PRESS', "ctrl": True}, None),
- ("text.jump", {"type": 'J', "value": 'PRESS', "ctrl": True}, None),
- ("text.find", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
- ("text.replace", {"type": 'H', "value": 'PRESS', "ctrl": True}, None),
- ("text.properties", {"type": 'T', "value": 'PRESS', "ctrl": True}, None),
- ],
- },
- ),
- ("Text",
- {"space_type": 'TEXT_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("wm.context_cycle_int",
- {"type": 'WHEELUPMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.font_size'),
- ("reverse", False),
- ],
- },
- ),
- ("wm.context_cycle_int",
- {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.font_size'),
- ("reverse", True),
- ],
- },
- ),
- ("wm.context_cycle_int",
- {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.font_size'),
- ("reverse", False),
- ],
- },
- ),
- ("wm.context_cycle_int",
- {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.font_size'),
- ("reverse", True),
- ],
- },
- ),
- ("text.new", {"type": 'N', "value": 'PRESS', "ctrl": True}, None),
- ("text.open", {"type": 'O', "value": 'PRESS', "alt": True}, None),
- ("text.reload", {"type": 'R', "value": 'PRESS', "alt": True}, None),
- ("text.save", {"type": 'S', "value": 'PRESS', "alt": True}, None),
- ("text.save_as", {"type": 'S', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
- ("text.run_script", {"type": 'P', "value": 'PRESS', "alt": True}, None),
- ("text.cut", {"type": 'X', "value": 'PRESS', "ctrl": True}, None),
- ("text.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
- ("text.paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
- ("text.cut", {"type": 'DEL', "value": 'PRESS', "shift": True}, None),
- ("text.copy", {"type": 'INSERT', "value": 'PRESS', "ctrl": True}, None),
- ("text.paste", {"type": 'INSERT', "value": 'PRESS', "shift": True}, None),
- ("text.duplicate_line", {"type": 'D', "value": 'PRESS', "ctrl": True}, None),
- ("text.select_all", {"type": 'A', "value": 'PRESS', "ctrl": True}, None),
- ("text.select_line", {"type": 'A', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("text.select_word", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'}, None),
- ("text.move_lines",
- {"type": 'UP_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("direction", 'UP'),
- ],
- },
- ),
- ("text.move_lines",
- {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("direction", 'DOWN'),
- ],
- },
- ),
- ("text.indent", {"type": 'TAB', "value": 'PRESS'}, None),
- ("text.unindent", {"type": 'TAB', "value": 'PRESS', "shift": True}, None),
- ("text.uncomment", {"type": 'D', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("text.move",
- {"type": 'HOME', "value": 'PRESS'},
- {"properties":
- [("type", 'LINE_BEGIN'),
- ],
- },
- ),
- ("text.move",
- {"type": 'END', "value": 'PRESS'},
- {"properties":
- [("type", 'LINE_END'),
- ],
- },
- ),
- ("text.move",
- {"type": 'E', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'LINE_END'),
- ],
- },
- ),
- ("text.move",
- {"type": 'E', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("type", 'LINE_END'),
- ],
- },
- ),
- ("text.move",
- {"type": 'LEFT_ARROW', "value": 'PRESS'},
- {"properties":
- [("type", 'PREVIOUS_CHARACTER'),
- ],
- },
- ),
- ("text.move",
- {"type": 'RIGHT_ARROW', "value": 'PRESS'},
- {"properties":
- [("type", 'NEXT_CHARACTER'),
- ],
- },
- ),
- ("text.move",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'PREVIOUS_WORD'),
- ],
- },
- ),
- ("text.move",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'NEXT_WORD'),
- ],
- },
- ),
- ("text.move",
- {"type": 'UP_ARROW', "value": 'PRESS'},
- {"properties":
- [("type", 'PREVIOUS_LINE'),
- ],
- },
- ),
- ("text.move",
- {"type": 'DOWN_ARROW', "value": 'PRESS'},
- {"properties":
- [("type", 'NEXT_LINE'),
- ],
- },
- ),
- ("text.move",
- {"type": 'PAGE_UP', "value": 'PRESS'},
- {"properties":
- [("type", 'PREVIOUS_PAGE'),
- ],
- },
- ),
- ("text.move",
- {"type": 'PAGE_DOWN', "value": 'PRESS'},
- {"properties":
- [("type", 'NEXT_PAGE'),
- ],
- },
- ),
- ("text.move",
- {"type": 'HOME', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'FILE_TOP'),
- ],
- },
- ),
- ("text.move",
- {"type": 'END', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'FILE_BOTTOM'),
- ],
- },
- ),
- ("text.move_select",
- {"type": 'HOME', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'LINE_BEGIN'),
- ],
- },
- ),
- ("text.move_select",
- {"type": 'END', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'LINE_END'),
- ],
- },
- ),
- ("text.move_select",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'PREVIOUS_CHARACTER'),
- ],
- },
- ),
- ("text.move_select",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'NEXT_CHARACTER'),
- ],
- },
- ),
- ("text.move_select",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("type", 'PREVIOUS_WORD'),
- ],
- },
- ),
- ("text.move_select",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("type", 'NEXT_WORD'),
- ],
- },
- ),
- ("text.move_select",
- {"type": 'UP_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'PREVIOUS_LINE'),
- ],
- },
- ),
- ("text.move_select",
- {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'NEXT_LINE'),
- ],
- },
- ),
- ("text.move_select",
- {"type": 'PAGE_UP', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'PREVIOUS_PAGE'),
- ],
- },
- ),
- ("text.move_select",
- {"type": 'PAGE_DOWN', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'NEXT_PAGE'),
- ],
- },
- ),
- ("text.move_select",
- {"type": 'HOME', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("type", 'FILE_TOP'),
- ],
- },
- ),
- ("text.move_select",
- {"type": 'END', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("type", 'FILE_BOTTOM'),
- ],
- },
- ),
- ("text.delete",
- {"type": 'DEL', "value": 'PRESS'},
- {"properties":
- [("type", 'NEXT_CHARACTER'),
- ],
- },
- ),
- ("text.delete",
- {"type": 'BACK_SPACE', "value": 'PRESS'},
- {"properties":
- [("type", 'PREVIOUS_CHARACTER'),
- ],
- },
- ),
- ("text.delete",
- {"type": 'BACK_SPACE', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'PREVIOUS_CHARACTER'),
- ],
- },
- ),
- ("text.delete",
- {"type": 'DEL', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'NEXT_WORD'),
- ],
- },
- ),
- ("text.delete",
- {"type": 'BACK_SPACE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'PREVIOUS_WORD'),
- ],
- },
- ),
- ("text.overwrite_toggle", {"type": 'INSERT', "value": 'PRESS'}, None),
- ("text.scroll_bar", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
- ("text.scroll_bar", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
- ("text.scroll", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
- ("text.scroll", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
- ("text.selection_set", {"type": 'EVT_TWEAK_L', "value": 'ANY'}, None),
- ("text.cursor_set", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
- ("text.selection_set",
- {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("select", True),
- ],
- },
- ),
- ("text.scroll",
- {"type": 'WHEELUPMOUSE', "value": 'PRESS'},
- {"properties":
- [("lines", -1),
- ],
- },
- ),
- ("text.scroll",
- {"type": 'WHEELDOWNMOUSE', "value": 'PRESS'},
- {"properties":
- [("lines", 1),
- ],
- },
- ),
- ("text.line_break", {"type": 'RET', "value": 'PRESS'}, None),
- ("text.line_break", {"type": 'NUMPAD_ENTER', "value": 'PRESS'}, None),
- ("wm.call_menu",
- {"type": 'RIGHTMOUSE', "value": 'PRESS', "any": True},
- {"properties":
- [("name", 'TEXT_MT_toolbox'),
- ],
- },
- ),
- ("text.autocomplete", {"type": 'SPACE', "value": 'PRESS', "ctrl": True}, None),
- ("text.line_number", {"type": 'TEXTINPUT', "value": 'ANY', "any": True}, None),
- ("text.insert", {"type": 'TEXTINPUT', "value": 'ANY', "any": True}, None),
- ],
- },
- ),
- ("SequencerCommon",
- {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("sequencer.properties", {"type": 'N', "value": 'PRESS'}, None),
- ("wm.context_toggle",
- {"type": 'O', "value": 'PRESS', "shift": True},
- {"properties":
- [("data_path", 'scene.sequence_editor.show_overlay'),
- ],
- },
- ),
- ("sequencer.view_toggle", {"type": 'TAB', "value": 'PRESS', "ctrl": True}, None),
- ],
- },
- ),
- ("Sequencer",
- {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("sequencer.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("sequencer.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("sequencer.cut",
- {"type": 'K', "value": 'PRESS'},
- {"properties":
- [("type", 'SOFT'),
- ],
- },
- ),
- ("sequencer.cut",
- {"type": 'K', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'HARD'),
- ],
- },
- ),
- ("sequencer.mute",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("unselected", False),
- ],
- },
- ),
- ("sequencer.mute",
- {"type": 'H', "value": 'PRESS', "shift": True},
- {"properties":
- [("unselected", True),
- ],
- },
- ),
- ("sequencer.unmute",
- {"type": 'H', "value": 'PRESS', "alt": True},
- {"properties":
- [("unselected", False),
- ],
- },
- ),
- ("sequencer.unmute",
- {"type": 'H', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("unselected", True),
- ],
- },
- ),
- ("sequencer.lock", {"type": 'L', "value": 'PRESS', "shift": True}, None),
- ("sequencer.unlock", {"type": 'L', "value": 'PRESS', "shift": True, "alt": True}, None),
- ("sequencer.reassign_inputs", {"type": 'R', "value": 'PRESS'}, None),
- ("sequencer.reload", {"type": 'R', "value": 'PRESS', "alt": True}, None),
- ("sequencer.reload",
- {"type": 'R', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("adjust_length", True),
- ],
- },
- ),
- ("sequencer.offset_clear", {"type": 'O', "value": 'PRESS', "alt": True}, None),
- ("sequencer.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
- ("sequencer.delete", {"type": 'X', "value": 'PRESS'}, None),
- ("sequencer.delete", {"type": 'DEL', "value": 'PRESS'}, None),
- ("sequencer.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
- ("sequencer.paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
- ("sequencer.images_separate", {"type": 'Y', "value": 'PRESS'}, None),
- ("sequencer.meta_toggle", {"type": 'TAB', "value": 'PRESS'}, None),
- ("sequencer.meta_make", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
- ("sequencer.meta_separate", {"type": 'G', "value": 'PRESS', "alt": True}, None),
- ("sequencer.view_all", {"type": 'HOME', "value": 'PRESS'}, None),
- ("sequencer.view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
- ("sequencer.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
- ("sequencer.view_frame", {"type": 'NUMPAD_0', "value": 'PRESS'}, None),
- ("sequencer.strip_jump",
- {"type": 'PAGE_UP', "value": 'PRESS'},
- {"properties":
- [("next", True),
- ("center", False),
- ],
- },
- ),
- ("sequencer.strip_jump",
- {"type": 'PAGE_DOWN', "value": 'PRESS'},
- {"properties":
- [("next", False),
- ("center", False),
- ],
- },
- ),
- ("sequencer.strip_jump",
- {"type": 'PAGE_UP', "value": 'PRESS', "alt": True},
- {"properties":
- [("next", True),
- ("center", True),
- ],
- },
- ),
- ("sequencer.strip_jump",
- {"type": 'PAGE_DOWN', "value": 'PRESS', "alt": True},
- {"properties":
- [("next", False),
- ("center", True),
- ],
- },
- ),
- ("sequencer.swap",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "alt": True},
- {"properties":
- [("side", 'LEFT'),
- ],
- },
- ),
- ("sequencer.swap",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "alt": True},
- {"properties":
- [("side", 'RIGHT'),
- ],
- },
- ),
- ("sequencer.gap_remove",
- {"type": 'BACK_SPACE', "value": 'PRESS'},
- {"properties":
- [("all", False),
- ],
- },
- ),
- ("sequencer.gap_remove",
- {"type": 'BACK_SPACE', "value": 'PRESS', "shift": True},
- {"properties":
- [("all", True),
- ],
- },
- ),
- ("sequencer.gap_insert", {"type": 'EQUAL', "value": 'PRESS', "shift": True}, None),
- ("sequencer.snap", {"type": 'S', "value": 'PRESS', "shift": True}, None),
- ("sequencer.swap_inputs", {"type": 'S', "value": 'PRESS', "alt": True}, None),
- ("sequencer.cut_multicam",
- {"type": 'ONE', "value": 'PRESS'},
- {"properties":
- [("camera", 1),
- ],
- },
- ),
- ("sequencer.cut_multicam",
- {"type": 'TWO', "value": 'PRESS'},
- {"properties":
- [("camera", 2),
- ],
- },
- ),
- ("sequencer.cut_multicam",
- {"type": 'THREE', "value": 'PRESS'},
- {"properties":
- [("camera", 3),
- ],
- },
- ),
- ("sequencer.cut_multicam",
- {"type": 'FOUR', "value": 'PRESS'},
- {"properties":
- [("camera", 4),
- ],
- },
- ),
- ("sequencer.cut_multicam",
- {"type": 'FIVE', "value": 'PRESS'},
- {"properties":
- [("camera", 5),
- ],
- },
- ),
- ("sequencer.cut_multicam",
- {"type": 'SIX', "value": 'PRESS'},
- {"properties":
- [("camera", 6),
- ],
- },
- ),
- ("sequencer.cut_multicam",
- {"type": 'SEVEN', "value": 'PRESS'},
- {"properties":
- [("camera", 7),
- ],
- },
- ),
- ("sequencer.cut_multicam",
- {"type": 'EIGHT', "value": 'PRESS'},
- {"properties":
- [("camera", 8),
- ],
- },
- ),
- ("sequencer.cut_multicam",
- {"type": 'NINE', "value": 'PRESS'},
- {"properties":
- [("camera", 9),
- ],
- },
- ),
- ("sequencer.cut_multicam",
- {"type": 'ZERO', "value": 'PRESS'},
- {"properties":
- [("camera", 10),
- ],
- },
- ),
- ("sequencer.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS'},
- {"properties":
- [("extend", False),
- ("linked_handle", False),
- ("left_right", 'NONE'),
- ("linked_time", False),
- ],
- },
- ),
- ("sequencer.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ("linked_handle", False),
- ("left_right", 'NONE'),
- ("linked_time", False),
- ],
- },
- ),
- ("sequencer.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "alt": True},
- {"properties":
- [("extend", False),
- ("linked_handle", True),
- ("left_right", 'NONE'),
- ("linked_time", False),
- ],
- },
- ),
- ("sequencer.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("extend", True),
- ("linked_handle", True),
- ("left_right", 'NONE'),
- ("linked_time", False),
- ],
- },
- ),
- ("sequencer.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("extend", False),
- ("linked_handle", False),
- ("left_right", 'MOUSE'),
- ("linked_time", True),
- ],
- },
- ),
- ("sequencer.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("extend", True),
- ("linked_handle", False),
- ("left_right", 'NONE'),
- ("linked_time", True),
- ],
- },
- ),
- ("sequencer.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
- ("sequencer.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
- ("sequencer.select_linked_pick",
- {"type": 'L', "value": 'PRESS'},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("sequencer.select_linked_pick",
- {"type": 'L', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("sequencer.select_linked", {"type": 'L', "value": 'PRESS', "ctrl": True}, None),
- ("sequencer.select_box", {"type": 'B', "value": 'PRESS'}, None),
- ("sequencer.select_grouped", {"type": 'G', "value": 'PRESS', "shift": True}, None),
- ("wm.call_menu",
- {"type": 'A', "value": 'PRESS', "shift": True},
- {"properties":
- [("name", 'SEQUENCER_MT_add'),
- ],
- },
- ),
- ("wm.call_menu",
- {"type": 'C', "value": 'PRESS'},
- {"properties":
- [("name", 'SEQUENCER_MT_change'),
- ],
- },
- ),
- ("sequencer.slip", {"type": 'S', "value": 'PRESS'}, None),
- ("wm.context_set_int",
- {"type": 'O', "value": 'PRESS'},
- {"properties":
- [("data_path", 'scene.sequence_editor.overlay_frame'),
- ("value", 0),
- ],
- },
- ),
- ("transform.seq_slide", {"type": 'G', "value": 'PRESS'}, None),
- ("transform.seq_slide", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
- ("transform.transform",
- {"type": 'E', "value": 'PRESS'},
- {"properties":
- [("mode", 'TIME_EXTEND'),
- ],
- },
- ),
- ("marker.add", {"type": 'M', "value": 'PRESS'}, None),
- ("marker.rename", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
- ],
- },
- ),
- ("SequencerPreview",
- {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("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),
- ("sequencer.view_zoom_ratio",
- {"type": 'NUMPAD_1', "value": 'PRESS'},
- {"properties":
- [("ratio", 1.0),
- ],
- },
- ),
- ("sequencer.sample", {"type": 'ACTIONMOUSE', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("Console",
- {"space_type": 'CONSOLE', "region_type": 'WINDOW'},
- {"items":
- [("console.move",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'PREVIOUS_WORD'),
- ],
- },
- ),
- ("console.move",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'NEXT_WORD'),
- ],
- },
- ),
- ("console.move",
- {"type": 'HOME', "value": 'PRESS'},
- {"properties":
- [("type", 'LINE_BEGIN'),
- ],
- },
- ),
- ("console.move",
- {"type": 'END', "value": 'PRESS'},
- {"properties":
- [("type", 'LINE_END'),
- ],
- },
- ),
- ("wm.context_cycle_int",
- {"type": 'WHEELUPMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.font_size'),
- ("reverse", False),
- ],
- },
- ),
- ("wm.context_cycle_int",
- {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.font_size'),
- ("reverse", True),
- ],
- },
- ),
- ("wm.context_cycle_int",
- {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.font_size'),
- ("reverse", False),
- ],
- },
- ),
- ("wm.context_cycle_int",
- {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.font_size'),
- ("reverse", True),
- ],
- },
- ),
- ("console.move",
- {"type": 'LEFT_ARROW', "value": 'PRESS'},
- {"properties":
- [("type", 'PREVIOUS_CHARACTER'),
- ],
- },
- ),
- ("console.move",
- {"type": 'RIGHT_ARROW', "value": 'PRESS'},
- {"properties":
- [("type", 'NEXT_CHARACTER'),
- ],
- },
- ),
- ("console.history_cycle",
- {"type": 'UP_ARROW', "value": 'PRESS'},
- {"properties":
- [("reverse", True),
- ],
- },
- ),
- ("console.history_cycle",
- {"type": 'DOWN_ARROW', "value": 'PRESS'},
- {"properties":
- [("reverse", False),
- ],
- },
- ),
- ("console.delete",
- {"type": 'DEL', "value": 'PRESS'},
- {"properties":
- [("type", 'NEXT_CHARACTER'),
- ],
- },
- ),
- ("console.delete",
- {"type": 'BACK_SPACE', "value": 'PRESS'},
- {"properties":
- [("type", 'PREVIOUS_CHARACTER'),
- ],
- },
- ),
- ("console.delete",
- {"type": 'BACK_SPACE', "value": 'PRESS', "shift": True},
- {"properties":
- [("type", 'PREVIOUS_CHARACTER'),
- ],
- },
- ),
- ("console.delete",
- {"type": 'DEL', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'NEXT_WORD'),
- ],
- },
- ),
- ("console.delete",
- {"type": 'BACK_SPACE', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("type", 'PREVIOUS_WORD'),
- ],
- },
- ),
- ("console.clear_line", {"type": 'RET', "value": 'PRESS', "shift": True}, None),
- ("console.clear_line", {"type": 'NUMPAD_ENTER', "value": 'PRESS', "shift": True}, None),
- ("console.execute",
- {"type": 'RET', "value": 'PRESS'},
- {"properties":
- [("interactive", True),
- ],
- },
- ),
- ("console.execute",
- {"type": 'NUMPAD_ENTER', "value": 'PRESS'},
- {"properties":
- [("interactive", True),
- ],
- },
- ),
- ("console.autocomplete", {"type": 'SPACE', "value": 'PRESS', "ctrl": True}, None),
- ("console.copy_as_script", {"type": 'C', "value": 'PRESS', "shift": True, "ctrl": True}, None),
- ("console.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
- ("console.paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
- ("console.select_set", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
- ("console.select_word", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'}, None),
- ("console.insert",
- {"type": 'TAB', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("text", '\t'),
- ],
- },
- ),
- ("console.indent", {"type": 'TAB', "value": 'PRESS'}, None),
- ("console.unindent", {"type": 'TAB', "value": 'PRESS', "shift": True}, None),
- ("console.insert", {"type": 'TEXTINPUT', "value": 'ANY', "any": True}, None),
- ],
- },
- ),
- ("Clip",
- {"space_type": 'CLIP_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("clip.open", {"type": 'O', "value": 'PRESS', "alt": True}, None),
- ("clip.tools", {"type": 'T', "value": 'PRESS'}, None),
- ("clip.properties", {"type": 'N', "value": 'PRESS'}, None),
- ("clip.track_markers",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "alt": True},
- {"properties":
- [("backwards", True),
- ("sequence", False),
- ],
- },
- ),
- ("clip.track_markers",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "alt": True},
- {"properties":
- [("backwards", False),
- ("sequence", False),
- ],
- },
- ),
- ("clip.track_markers",
- {"type": 'T', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("backwards", False),
- ("sequence", True),
- ],
- },
- ),
- ("clip.track_markers",
- {"type": 'T', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("backwards", True),
- ("sequence", True),
- ],
- },
- ),
- ("wm.context_toggle_enum",
- {"type": 'TAB', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.mode'),
- ("value_1", 'TRACKING'),
- ("value_2", 'MASK'),
- ],
- },
- ),
- ("clip.solve_camera", {"type": 'S', "value": 'PRESS', "shift": True}, None),
- ("clip.set_solver_keyframe",
- {"type": 'Q', "value": 'PRESS'},
- {"properties":
- [("keyframe", 'KEYFRAME_A'),
- ],
- },
- ),
- ("clip.set_solver_keyframe",
- {"type": 'E', "value": 'PRESS'},
- {"properties":
- [("keyframe", 'KEYFRAME_B'),
- ],
- },
- ),
- ("clip.prefetch", {"type": 'P', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("Clip Editor",
- {"space_type": 'CLIP_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("clip.view_pan", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
- ("clip.view_pan", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True}, None),
- ("clip.view_pan", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
- ("clip.view_zoom", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("clip.view_zoom", {"type": 'TRACKPADZOOM', "value": 'ANY'}, None),
- ("clip.view_zoom", {"type": 'TRACKPADPAN', "value": 'ANY', "ctrl": True}, None),
- ("clip.view_zoom_in", {"type": 'WHEELINMOUSE', "value": 'PRESS'}, None),
- ("clip.view_zoom_out", {"type": 'WHEELOUTMOUSE', "value": 'PRESS'}, None),
- ("clip.view_zoom_in", {"type": 'NUMPAD_PLUS', "value": 'PRESS'}, None),
- ("clip.view_zoom_out", {"type": 'NUMPAD_MINUS', "value": 'PRESS'}, None),
- ("clip.view_zoom_ratio",
- {"type": 'NUMPAD_8', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("ratio", 8.0),
- ],
- },
- ),
- ("clip.view_zoom_ratio",
- {"type": 'NUMPAD_4', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("ratio", 4.0),
- ],
- },
- ),
- ("clip.view_zoom_ratio",
- {"type": 'NUMPAD_2', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("ratio", 2.0),
- ],
- },
- ),
- ("clip.view_zoom_ratio",
- {"type": 'NUMPAD_8', "value": 'PRESS', "shift": True},
- {"properties":
- [("ratio", 8.0),
- ],
- },
- ),
- ("clip.view_zoom_ratio",
- {"type": 'NUMPAD_4', "value": 'PRESS', "shift": True},
- {"properties":
- [("ratio", 4.0),
- ],
- },
- ),
- ("clip.view_zoom_ratio",
- {"type": 'NUMPAD_2', "value": 'PRESS', "shift": True},
- {"properties":
- [("ratio", 2.0),
- ],
- },
- ),
- ("clip.view_zoom_ratio",
- {"type": 'NUMPAD_1', "value": 'PRESS'},
- {"properties":
- [("ratio", 1.0),
- ],
- },
- ),
- ("clip.view_zoom_ratio",
- {"type": 'NUMPAD_2', "value": 'PRESS'},
- {"properties":
- [("ratio", 0.5),
- ],
- },
- ),
- ("clip.view_zoom_ratio",
- {"type": 'NUMPAD_4', "value": 'PRESS'},
- {"properties":
- [("ratio", 0.25),
- ],
- },
- ),
- ("clip.view_zoom_ratio",
- {"type": 'NUMPAD_8', "value": 'PRESS'},
- {"properties":
- [("ratio", 0.125),
- ],
- },
- ),
- ("clip.view_all", {"type": 'HOME', "value": 'PRESS'}, None),
- ("clip.view_all",
- {"type": 'F', "value": 'PRESS'},
- {"properties":
- [("fit_view", True),
- ],
- },
- ),
- ("clip.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
- ("clip.view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
- ("clip.view_ndof", {"type": 'NDOF_MOTION', "value": 'ANY'}, None),
- ("clip.frame_jump",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("position", 'PATHSTART'),
- ],
- },
- ),
- ("clip.frame_jump",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
- {"properties":
- [("position", 'PATHEND'),
- ],
- },
- ),
- ("clip.frame_jump",
- {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("position", 'FAILEDPREV'),
- ],
- },
- ),
- ("clip.frame_jump",
- {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("position", 'PATHSTART'),
- ],
- },
- ),
- ("clip.change_frame", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
- ("clip.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS'},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("clip.select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("clip.select_all",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("clip.select_all",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("clip.select_box", {"type": 'B', "value": 'PRESS'}, None),
- ("clip.select_circle", {"type": 'C', "value": 'PRESS'}, None),
- ("wm.call_menu",
- {"type": 'G', "value": 'PRESS', "shift": True},
- {"properties":
- [("name", 'CLIP_MT_select_grouped'),
- ],
- },
- ),
- ("clip.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True, "alt": True},
- {"properties":
- [("deselect", False),
- ],
- },
- ),
- ("clip.select_lasso",
- {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True, "alt": True},
- {"properties":
- [("deselect", True),
- ],
- },
- ),
- ("clip.add_marker_slide", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, None),
- ("clip.delete_marker", {"type": 'DEL', "value": 'PRESS', "shift": True}, None),
- ("clip.delete_marker", {"type": 'X', "value": 'PRESS', "shift": True}, None),
- ("clip.slide_marker", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
- ("clip.disable_markers",
- {"type": 'D', "value": 'PRESS', "shift": True},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("clip.delete_track", {"type": 'DEL', "value": 'PRESS'}, None),
- ("clip.delete_track", {"type": 'X', "value": 'PRESS'}, None),
- ("clip.lock_tracks",
- {"type": 'L', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'LOCK'),
- ],
- },
- ),
- ("clip.lock_tracks",
- {"type": 'L', "value": 'PRESS', "alt": True},
- {"properties":
- [("action", 'UNLOCK'),
- ],
- },
- ),
- ("clip.hide_tracks",
- {"type": 'H', "value": 'PRESS'},
- {"properties":
- [("unselected", False),
- ],
- },
- ),
- ("clip.hide_tracks",
- {"type": 'H', "value": 'PRESS', "shift": True},
- {"properties":
- [("unselected", True),
- ],
- },
- ),
- ("clip.hide_tracks_clear", {"type": 'H', "value": 'PRESS', "alt": True}, None),
- ("clip.slide_plane_marker", {"type": 'ACTIONMOUSE', "value": 'PRESS'}, None),
- ("clip.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None),
- ("clip.keyframe_delete", {"type": 'I', "value": 'PRESS', "alt": True}, None),
- ("clip.join_tracks", {"type": 'J', "value": 'PRESS', "ctrl": True}, None),
- ("wm.call_menu",
- {"type": 'W', "value": 'PRESS'},
- {"properties":
- [("name", 'CLIP_MT_tracking_specials'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'L', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.lock_selection'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'D', "value": 'PRESS', "alt": True},
- {"properties":
- [("data_path", 'space_data.show_disabled'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'S', "value": 'PRESS', "alt": True},
- {"properties":
- [("data_path", 'space_data.show_marker_search'),
- ],
- },
- ),
- ("wm.context_toggle",
- {"type": 'M', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.use_mute_footage'),
- ],
- },
- ),
- ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
- ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
- ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
- ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
- ("clip.clear_track_path",
- {"type": 'T', "value": 'PRESS', "alt": True},
- {"properties":
- [("action", 'REMAINED'),
- ("clear_active", False),
- ],
- },
- ),
- ("clip.clear_track_path",
- {"type": 'T', "value": 'PRESS', "shift": True},
- {"properties":
- [("action", 'UPTO'),
- ("clear_active", False),
- ],
- },
- ),
- ("clip.clear_track_path",
- {"type": 'T', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("action", 'ALL'),
- ("clear_active", False),
- ],
- },
- ),
- ("clip.cursor_set", {"type": 'ACTIONMOUSE', "value": 'PRESS'}, None),
- ("wm.context_set_enum",
- {"type": 'COMMA', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.pivot_point'),
- ("value", 'BOUNDING_BOX_CENTER'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'COMMA', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.pivot_point'),
- ("value", 'MEDIAN_POINT'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'PERIOD', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.pivot_point'),
- ("value", 'CURSOR'),
- ],
- },
- ),
- ("wm.context_set_enum",
- {"type": 'PERIOD', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("data_path", 'space_data.pivot_point'),
- ("value", 'INDIVIDUAL_ORIGINS'),
- ],
- },
- ),
- ("clip.copy_tracks", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
- ("clip.paste_tracks", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
- ],
- },
- ),
- ("Clip Graph Editor",
- {"space_type": 'CLIP_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("clip.change_frame", {"type": 'ACTIONMOUSE', "value": 'PRESS'}, None),
- ("clip.graph_select",
- {"type": 'SELECTMOUSE', "value": 'PRESS'},
- {"properties":
- [("extend", False),
- ],
- },
- ),
- ("clip.graph_select",
- {"type": 'SELECTMOUSE', "value": 'PRESS', "shift": True},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("clip.graph_select_all_markers",
- {"type": 'A', "value": 'PRESS'},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("clip.graph_select_all_markers",
- {"type": 'I', "value": 'PRESS', "ctrl": True},
- {"properties":
- [("action", 'INVERT'),
- ],
- },
- ),
- ("clip.graph_select_box", {"type": 'B', "value": 'PRESS'}, None),
- ("clip.graph_delete_curve", {"type": 'DEL', "value": 'PRESS'}, None),
- ("clip.graph_delete_curve", {"type": 'X', "value": 'PRESS'}, None),
- ("clip.graph_delete_knot", {"type": 'DEL', "value": 'PRESS', "shift": True}, None),
- ("clip.graph_delete_knot", {"type": 'X', "value": 'PRESS', "shift": True}, None),
- ("clip.graph_view_all", {"type": 'HOME', "value": 'PRESS'}, None),
- ("clip.graph_view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
- ("clip.graph_center_current_frame", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
- ("wm.context_toggle",
- {"type": 'L', "value": 'PRESS'},
- {"properties":
- [("data_path", 'space_data.lock_time_cursor'),
- ],
- },
- ),
- ("clip.clear_track_path",
- {"type": 'T', "value": 'PRESS', "alt": True},
- {"properties":
- [("action", 'REMAINED'),
- ("clear_active", True),
- ],
- },
- ),
- ("clip.clear_track_path",
- {"type": 'T', "value": 'PRESS', "shift": True},
- {"properties":
- [("action", 'UPTO'),
- ("clear_active", True),
- ],
- },
- ),
- ("clip.clear_track_path",
- {"type": 'T', "value": 'PRESS', "shift": True, "alt": True},
- {"properties":
- [("action", 'ALL'),
- ("clear_active", True),
- ],
- },
- ),
- ("clip.graph_disable_markers",
- {"type": 'D', "value": 'PRESS', "shift": True},
- {"properties":
- [("action", 'TOGGLE'),
- ],
- },
- ),
- ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
- ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
- ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
- ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("Clip Dopesheet Editor",
- {"space_type": 'CLIP_EDITOR', "region_type": 'WINDOW'},
- {"items":
- [("clip.dopesheet_select_channel",
- {"type": 'LEFTMOUSE', "value": 'PRESS'},
- {"properties":
- [("extend", True),
- ],
- },
- ),
- ("clip.dopesheet_view_all", {"type": 'HOME', "value": 'PRESS'}, None),
- ("clip.dopesheet_view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
- ],
- },
- ),
- ("3D View Tool: OBJECT, Move",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("transform.translate",
- {"type": 'EVT_TWEAK_A', "value": 'ANY'},
- {"properties":
- [("release_confirm", True),
- ],
- },
- ),
- ],
- },
- ),
- ("3D View Tool: OBJECT, Rotate",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("transform.rotate",
- {"type": 'EVT_TWEAK_A', "value": 'ANY'},
- {"properties":
- [("release_confirm", True),
- ],
- },
- ),
- ],
- },
- ),
- ("3D View Tool: OBJECT, Scale",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("transform.resize",
- {"type": 'EVT_TWEAK_A', "value": 'ANY'},
- {"properties":
- [("release_confirm", True),
- ],
- },
- ),
- ],
- },
- ),
- ("3D View Tool: OBJECT, Ruler/Protractor",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("view3d.ruler_add", {"type": 'EVT_TWEAK_A', "value": 'ANY'}, None),
- ],
- },
- ),
- ("3D View Tool: PARTICLE, Cursor Click",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("view3d.cursor3d", {"type": 'ACTIONMOUSE', "value": 'CLICK'}, None),
- ],
- },
- ),
- ("Spot Lamp Widgets",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("Area Lamp Widgets",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ("Target Lamp Widgets",
- {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
- {"items":
- [("manipulatorgroup.manipulator_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
- ],
- },
- ),
- ]
+import os
+from bpy_extras.keyconfig_utils import (
+ keyconfig_import_from_data,
+ keyconfig_module_from_preset,
+)
+_mod = keyconfig_module_from_preset(os.path.join("keymap_data", "blender_default"), __file__)
+keyconfig_data = _mod.generate_keymaps(_mod.KeymapParams(legacy=True))
if __name__ == "__main__":
- import os
- from bpy_extras.keyconfig_utils import keyconfig_import_from_data
- keyconfig_import_from_data(os.path.splitext(os.path.basename(__file__))[0], keyconfig_data)
+ keyconfig_import_from_data("Blender 27X", keyconfig_data)
diff --git a/release/scripts/presets/keyconfig/keymap_data/blender_default.py b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
new file mode 100644
index 00000000000..2ae68c54290
--- /dev/null
+++ b/release/scripts/presets/keyconfig/keymap_data/blender_default.py
@@ -0,0 +1,5029 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software Foundation,
+# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+
+# ------------------------------------------------------------------------------
+# Configurable Parameters
+
+class KeymapParams:
+ __slots__ = (
+ "apple",
+ "legacy",
+ "select_mouse",
+ "action_mouse",
+ )
+
+ def __init__(self, legacy=False):
+ import platform
+ self.apple = platform.system() == 'Darwin'
+ self.legacy = legacy
+ self.select_mouse = 'SELECTMOUSE'
+ self.action_mouse = 'ACTIONMOUSE'
+
+
+# ------------------------------------------------------------------------------
+# Keymap Item Wrappers
+
+def op_menu(menu, kmi_args):
+ return ("wm.call_menu", kmi_args, {"properties": [("name", menu)]})
+
+
+def op_menu_pie(menu, kmi_args):
+ return ("wm.call_menu_pie", kmi_args, {"properties": [("name", menu)]})
+
+
+def op_panel(menu, kmi_args, kmi_data=()):
+ return ("wm.call_panel", kmi_args, {"properties": [("name", menu), *kmi_data]})
+
+
+# ------------------------------------------------------------------------------
+# Keymap Templates
+
+def _template_items_select_actions(operator):
+ return [
+ (operator, {"type": 'A', "value": 'PRESS'}, {"properties": [("action", 'SELECT')]}),
+ (operator, {"type": 'A', "value": 'PRESS', "alt": True}, {"properties": [("action", 'DESELECT')]}),
+ (operator, {"type": 'I', "value": 'PRESS', "ctrl": True}, {"properties": [("action", 'INVERT')]}),
+ (operator, {"type": 'A', "value": 'DOUBLE_CLICK'}, {"properties": [("action", 'DESELECT')]}),
+ ]
+
+
+def _template_items_gizmo_tweak_value():
+ return [
+ ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ]
+
+
+def _template_items_gizmo_tweak_modal():
+ return [
+ ("CANCEL", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ("CANCEL", {"type": 'RIGHTMOUSE', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'RET', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'NUMPAD_ENTER', "value": 'PRESS', "any": True}, None),
+ ("PRECISION_ON", {"type": 'RIGHT_SHIFT', "value": 'PRESS', "any": True}, None),
+ ("PRECISION_OFF", {"type": 'RIGHT_SHIFT', "value": 'RELEASE', "any": True}, None),
+ ("PRECISION_ON", {"type": 'LEFT_SHIFT', "value": 'PRESS', "any": True}, None),
+ ("PRECISION_OFF", {"type": 'LEFT_SHIFT', "value": 'RELEASE', "any": True}, None),
+ ("SNAP_ON", {"type": 'RIGHT_CTRL', "value": 'PRESS', "any": True}, None),
+ ("SNAP_OFF", {"type": 'RIGHT_CTRL', "value": 'RELEASE', "any": True}, None),
+ ("SNAP_ON", {"type": 'LEFT_CTRL', "value": 'PRESS', "any": True}, None),
+ ("SNAP_OFF", {"type": 'LEFT_CTRL', "value": 'RELEASE', "any": True}, None),
+ ]
+
+
+# ------------------------------------------------------------------------------
+# Window, Screen, Areas, Regions
+
+def km_window(params):
+ items = []
+ keymap = (
+ "Window",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ if params.apple:
+ # Apple standard shortcuts. Cmd+F for search since F-keys are not easy to use.
+ items.extend([
+ ("wm.read_homefile", {"type": 'N', "value": 'PRESS', "oskey": True}, None),
+ op_menu("TOPBAR_MT_file_open_recent", {"type": 'O', "value": 'PRESS', "shift": True, "oskey": True}),
+ ("wm.open_mainfile", {"type": 'O', "value": 'PRESS', "oskey": True}, None),
+ ("wm.save_mainfile", {"type": 'S', "value": 'PRESS', "oskey": True}, None),
+ ("wm.save_as_mainfile", {"type": 'S', "value": 'PRESS', "shift": True, "oskey": True}, None),
+ ("wm.quit_blender", {"type": 'Q', "value": 'PRESS', "oskey": True}, None),
+ ("wm.search_menu", {"type": 'F', "value": 'PRESS', "oskey": True}, None),
+ ])
+
+ items.extend([
+ # File operations
+ ("wm.read_homefile", {"type": 'N', "value": 'PRESS', "ctrl": True}, None),
+ op_menu("TOPBAR_MT_file_open_recent", {"type": 'O', "value": 'PRESS', "shift": True, "ctrl": True}),
+ ("wm.open_mainfile", {"type": 'O', "value": 'PRESS', "ctrl": True}, None),
+ ("wm.save_mainfile", {"type": 'S', "value": 'PRESS', "ctrl": True}, None),
+ ("wm.save_as_mainfile", {"type": 'S', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("wm.quit_blender", {"type": 'Q', "value": 'PRESS', "ctrl": True}, None),
+
+ # Quick menu and toolbar
+ op_menu("SCREEN_MT_user_menu", {"type": 'Q', "value": 'PRESS'}),
+ ("wm.toolbar", {"type": 'SPACE', "value": 'PRESS'}, None),
+
+ # Fast editor switching
+ ("wm.context_set_enum", {"type": 'F4', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'area.type'), ("value", 'CONSOLE')]}),
+ ("wm.context_set_enum", {"type": 'F5', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'area.type'), ("value", 'VIEW_3D')]}),
+ ("wm.context_set_enum", {"type": 'F6', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'area.type'), ("value", 'GRAPH_EDITOR')]}),
+ ("wm.context_set_enum", {"type": 'F7', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'area.type'), ("value", 'PROPERTIES')]}),
+ ("wm.context_set_enum", {"type": 'F8', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'area.type'), ("value", 'SEQUENCE_EDITOR')]}),
+ ("wm.context_set_enum", {"type": 'F9', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'area.type'), ("value", 'OUTLINER')]}),
+ ("wm.context_set_enum", {"type": 'F10', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'area.type'), ("value", 'IMAGE_EDITOR')]}),
+ ("wm.context_set_enum", {"type": 'F11', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'area.type'), ("value", 'TEXT_EDITOR')]}),
+ ("wm.context_set_enum", {"type": 'F12', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'area.type'), ("value", 'DOPESHEET_EDITOR')]}),
+
+ # NDOF settings
+ op_menu("USERPREF_MT_ndof_settings", {"type": 'NDOF_BUTTON_MENU', "value": 'PRESS'}),
+ ("wm.context_scale_float", {"type": 'NDOF_BUTTON_PLUS', "value": 'PRESS'},
+ {"properties": [("data_path", 'user_preferences.inputs.ndof_sensitivity'), ("value", 1.1)]}),
+ ("wm.context_scale_float", {"type": 'NDOF_BUTTON_MINUS', "value": 'PRESS'},
+ {"properties": [("data_path", 'user_preferences.inputs.ndof_sensitivity'), ("value", 1.0 / 1.1)]}),
+ ("wm.context_scale_float", {"type": 'NDOF_BUTTON_PLUS', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'user_preferences.inputs.ndof_sensitivity'), ("value", 1.5)]}),
+ ("wm.context_scale_float", {"type": 'NDOF_BUTTON_MINUS', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'user_preferences.inputs.ndof_sensitivity'), ("value", 2.0 / 3.0)]}),
+ ("info.reports_display_update", {"type": 'TIMER_REPORT', "value": 'ANY', "any": True}, None),
+ ])
+
+ if not params.legacy:
+ # New shortcuts
+ items.extend([
+ ("wm.doc_view_manual_ui_context", {"type": 'F1', "value": 'PRESS'}, None),
+ op_menu("TOPBAR_MT_file_specials", {"type": 'F2', "value": 'PRESS'}),
+ ("wm.search_menu", {"type": 'F3', "value": 'PRESS'}, None),
+ op_menu("TOPBAR_MT_window_specials", {"type": 'F4', "value": 'PRESS'}),
+ ])
+ else:
+ # Old shorctus
+ items.extend([
+ ("wm.window_new", {"type": 'W', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("wm.save_homefile", {"type": 'U', "value": 'PRESS', "ctrl": True}, None),
+ ("wm.open_mainfile", {"type": 'F1', "value": 'PRESS'}, None),
+ ("wm.link", {"type": 'O', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("wm.append", {"type": 'F1', "value": 'PRESS', "shift": True}, None),
+ ("wm.save_mainfile", {"type": 'W', "value": 'PRESS', "ctrl": True}, None),
+ ("wm.save_as_mainfile", {"type": 'F2', "value": 'PRESS'}, None),
+ ("wm.save_as_mainfile", {"type": 'S', "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("copy", True)]}),
+ ("wm.window_fullscreen_toggle", {"type": 'F11', "value": 'PRESS', "alt": True}, None),
+ ("wm.doc_view_manual_ui_context", {"type": 'F1', "value": 'PRESS', "alt": True}, None),
+ ("wm.redraw_timer", {"type": 'T', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("wm.debug_menu", {"type": 'D', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ])
+
+ return keymap
+
+
+def km_screen(params):
+ items = []
+ keymap = (
+ "Screen",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Animation
+ ("screen.animation_step", {"type": 'TIMER0', "value": 'ANY', "any": True}, None),
+ ("screen.region_blend", {"type": 'TIMERREGION', "value": 'ANY', "any": True}, None),
+ # Full screen and cycling
+ ("screen.screen_full_area", {"type": 'SPACE', "value": 'PRESS', "ctrl": True}, None),
+ ("screen.screen_full_area", {"type": 'SPACE', "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("use_hide_panels", True)]}),
+ ("screen.space_context_cycle", {"type": 'TAB', "value": 'PRESS', "ctrl": True},
+ {"properties": [("direction", 'NEXT')]}),
+ ("screen.space_context_cycle", {"type": 'TAB', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("direction", 'PREV')]}),
+ ("screen.workspace_cycle", {"type": 'PAGE_DOWN', "value": 'PRESS', "ctrl": True},
+ {"properties": [("direction", 'NEXT')]}),
+ ("screen.workspace_cycle", {"type": 'PAGE_UP', "value": 'PRESS', "ctrl": True},
+ {"properties": [("direction", 'PREV')]}),
+ # Quad view
+ ("screen.region_quadview", {"type": 'Q', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ # Repeat last
+ ("screen.repeat_last", {"type": 'R', "value": 'PRESS', "shift": True}, None),
+ # Files
+ ("file.execute", {"type": 'RET', "value": 'PRESS'}, None),
+ ("file.execute", {"type": 'NUMPAD_ENTER', "value": 'PRESS'}, None),
+ ("file.cancel", {"type": 'ESC', "value": 'PRESS'}, None),
+ # Undo
+ ("ed.undo", {"type": 'Z', "value": 'PRESS', "ctrl": True}, None),
+ ("ed.redo", {"type": 'Z', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ # Render
+ ("render.render", {"type": 'F12', "value": 'PRESS'},
+ {"properties": [("use_viewport", True)]}),
+ ("render.render", {"type": 'F12', "value": 'PRESS', "ctrl": True},
+ {"properties": [("animation", True), ("use_viewport", True)]}),
+ ("render.view_cancel", {"type": 'ESC', "value": 'PRESS'}, None),
+ ("render.view_show", {"type": 'F11', "value": 'PRESS'}, None),
+ ("render.play_rendered_anim", {"type": 'F11', "value": 'PRESS', "ctrl": True}, None),
+ ])
+
+ if params.legacy:
+ # Old keymap
+ items.extend([
+ ("ed.undo_history", {"type": 'Z', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("screen.screen_set", {"type": 'RIGHT_ARROW', "value": 'PRESS', "ctrl": True},
+ {"properties": [("delta", 1)]}),
+ ("screen.screen_set", {"type": 'LEFT_ARROW', "value": 'PRESS', "ctrl": True},
+ {"properties": [("delta", -1)]}),
+ ("screen.screenshot", {"type": 'F3', "value": 'PRESS', "ctrl": True}, None),
+ ("screen.repeat_history", {"type": 'R', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("screen.region_flip", {"type": 'F5', "value": 'PRESS'}, None),
+ ("screen.redo_last", {"type": 'F6', "value": 'PRESS'}, None),
+ ("script.reload", {"type": 'F8', "value": 'PRESS'}, None),
+ ("screen.userpref_show", {"type": 'U', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ])
+
+ if params.apple:
+ # Apple undo and user prefs
+ items.extend([
+ ("ed.undo", {"type": 'Z', "value": 'PRESS', "oskey": True}, None),
+ ("ed.redo", {"type": 'Z', "value": 'PRESS', "shift": True, "oskey": True}, None),
+ ("ed.undo_history", {"type": 'Z', "value": 'PRESS', "alt": True, "oskey": True}, None),
+ ("screen.userpref_show", {"type": 'COMMA', "value": 'PRESS', "oskey": True}, None),
+ ])
+
+ return keymap
+
+
+def km_screen_editing(params):
+ items = []
+ keymap = ("Screen Editing",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items})
+
+ items.extend([
+ # Action zones
+ ("screen.actionzone", {"type": 'LEFTMOUSE', "value": 'PRESS'},
+ {"properties": [("modifier", 0)]}),
+ ("screen.actionzone", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("modifier", 1)]}),
+ ("screen.actionzone", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("modifier", 2)]}),
+ # Screen tools
+ ("screen.area_split", {"type": 'ACTIONZONE_AREA', "value": 'ANY'}, None),
+ ("screen.area_join", {"type": 'ACTIONZONE_AREA', "value": 'ANY'}, None),
+ ("screen.area_dupli", {"type": 'ACTIONZONE_AREA', "value": 'ANY', "shift": True}, None),
+ ("screen.area_swap", {"type": 'ACTIONZONE_AREA', "value": 'ANY', "ctrl": True}, None),
+ ("screen.region_scale", {"type": 'ACTIONZONE_REGION', "value": 'ANY'}, None),
+ ("screen.screen_full_area", {"type": 'ACTIONZONE_FULLSCREEN', "value": 'ANY'},
+ {"properties": [("use_hide_panels", True)]}),
+ # Area move after action zones
+ ("screen.area_move", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("screen.area_options", {"type": 'RIGHTMOUSE', "value": 'PRESS'}, None),
+ ])
+
+ if params.legacy:
+ items.extend([
+ ("screen.header", {"type": 'F9', "value": 'PRESS', "alt": True}, None),
+ ])
+
+ return keymap
+
+
+def km_header(_params):
+ items = []
+ keymap = (
+ "Header",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("screen.header_context_menu", {"type": 'RIGHTMOUSE', "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+def km_view2d(_params):
+ items = []
+ keymap = (
+ "View2D",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Scrollbars
+ ("view2d.scroller_activate", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("view2d.scroller_activate", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
+ # Pan/scroll
+ ("view2d.pan", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
+ ("view2d.pan", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True}, None),
+ ("view2d.pan", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
+ ("view2d.scroll_right", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "ctrl": True}, None),
+ ("view2d.scroll_left", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "ctrl": True}, None),
+ ("view2d.scroll_down", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "shift": True}, None),
+ ("view2d.scroll_up", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "shift": True}, None),
+ ("view2d.ndof", {"type": 'NDOF_MOTION', "value": 'ANY'}, None),
+ # Zoom with single step
+ ("view2d.zoom_out", {"type": 'WHEELOUTMOUSE', "value": 'PRESS'}, None),
+ ("view2d.zoom_in", {"type": 'WHEELINMOUSE', "value": 'PRESS'}, None),
+ ("view2d.zoom_out", {"type": 'NUMPAD_MINUS', "value": 'PRESS'}, None),
+ ("view2d.zoom_in", {"type": 'NUMPAD_PLUS', "value": 'PRESS'}, None),
+ ("view2d.zoom", {"type": 'TRACKPADPAN', "value": 'ANY', "ctrl": True}, None),
+ ("view2d.smoothview", {"type": 'TIMER1', "value": 'ANY', "any": True}, None),
+ # Scroll up/down, only when zoom is not available.
+ ("view2d.scroll_down", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS'}, None),
+ ("view2d.scroll_up", {"type": 'WHEELUPMOUSE', "value": 'PRESS'}, None),
+ ("view2d.scroll_right", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS'}, None),
+ ("view2d.scroll_left", {"type": 'WHEELUPMOUSE', "value": 'PRESS'}, None),
+ # Zoom with drag and border
+ ("view2d.zoom", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "ctrl": True}, None),
+ ("view2d.zoom", {"type": 'TRACKPADZOOM', "value": 'ANY'}, None),
+ ("view2d.zoom_border", {"type": 'B', "value": 'PRESS', "shift": True}, None),
+ ])
+
+ return keymap
+
+
+def km_view2d_buttons_list(_params):
+ items = []
+ keymap = (
+ "View2D Buttons List",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Scrollbars
+ ("view2d.scroller_activate", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("view2d.scroller_activate", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
+ # Pan scroll
+ ("view2d.pan", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
+ ("view2d.pan", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
+ ("view2d.scroll_down", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS'}, None),
+ ("view2d.scroll_up", {"type": 'WHEELUPMOUSE', "value": 'PRESS'}, None),
+ ("view2d.scroll_down", {"type": 'PAGE_DOWN', "value": 'PRESS'},
+ {"properties": [("page", True)]}),
+ ("view2d.scroll_up", {"type": 'PAGE_UP', "value": 'PRESS'},
+ {"properties": [("page", True)]}),
+ # Zoom
+ ("view2d.zoom", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "ctrl": True}, None),
+ ("view2d.zoom", {"type": 'TRACKPADZOOM', "value": 'ANY'}, None),
+ ("view2d.zoom", {"type": 'TRACKPADPAN', "value": 'ANY', "ctrl": True}, None),
+ ("view2d.zoom_out", {"type": 'NUMPAD_MINUS', "value": 'PRESS'}, None),
+ ("view2d.zoom_in", {"type": 'NUMPAD_PLUS', "value": 'PRESS'}, None),
+ ("view2d.reset", {"type": 'HOME', "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+def km_user_interface(_params):
+ items = []
+ keymap = (
+ "User Interface",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Eyedroppers all have the same event, and pass it through until
+ # a suitable eyedropper handles it.
+ ("ui.eyedropper_color", {"type": 'E', "value": 'PRESS'}, None),
+ ("ui.eyedropper_colorband", {"type": 'E', "value": 'PRESS'}, None),
+ ("ui.eyedropper_colorband_point", {"type": 'E', "value": 'PRESS', "alt": True}, None),
+ ("ui.eyedropper_id", {"type": 'E', "value": 'PRESS'}, None),
+ ("ui.eyedropper_depth", {"type": 'E', "value": 'PRESS'}, None),
+ # Copy data path
+ ("ui.copy_data_path_button", {"type": 'C', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("ui.copy_data_path_button", {"type": 'C', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
+ {"properties": [("full_path", True)]}),
+ # Keyframes and drivers
+ ("anim.keyframe_insert_button", {"type": 'I', "value": 'PRESS'}, None),
+ ("anim.keyframe_delete_button", {"type": 'I', "value": 'PRESS', "alt": True}, None),
+ ("anim.keyframe_clear_button", {"type": 'I', "value": 'PRESS', "shift": True, "alt": True}, None),
+ ("anim.driver_button_add", {"type": 'D', "value": 'PRESS', "ctrl": True}, None),
+ ("anim.driver_button_remove", {"type": 'D', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("anim.keyingset_button_add", {"type": 'K', "value": 'PRESS'}, None),
+ ("anim.keyingset_button_remove", {"type": 'K', "value": 'PRESS', "alt": True}, None),
+ ])
+
+ return keymap
+
+
+# ------------------------------------------------------------------------------
+# Editors
+
+
+def km_property_editor(_params):
+ items = []
+ keymap = (
+ "Property Editor",
+ {"space_type": 'PROPERTIES', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("buttons.context_menu", {"type": 'RIGHTMOUSE', "value": 'PRESS'}, None),
+ ("screen.space_context_cycle", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("direction", 'PREV'), ], },),
+ ("screen.space_context_cycle", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("direction", 'NEXT'), ], },),
+ ])
+
+ return keymap
+
+
+def km_outliner(_params):
+ items = []
+ keymap = (
+ "Outliner",
+ {"space_type": 'OUTLINER', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("outliner.highlight_update", {"type": 'MOUSEMOVE', "value": 'ANY', "any": True}, None),
+ ("outliner.item_rename", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'}, None),
+ ("outliner.item_activate", {"type": 'LEFTMOUSE', "value": 'CLICK'},
+ {"properties": [("extend", False), ("recursive", False)]}),
+ ("outliner.item_activate", {"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True},
+ {"properties": [("extend", True), ("recursive", False)]}),
+ ("outliner.item_activate", {"type": 'LEFTMOUSE', "value": 'CLICK', "ctrl": True},
+ {"properties": [("extend", False), ("recursive", True)]}),
+ ("outliner.item_activate", {"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True, "ctrl": True},
+ {"properties": [("extend", True), ("recursive", True)]}),
+ ("outliner.select_box", {"type": 'B', "value": 'PRESS'}, None),
+ ("outliner.item_openclose", {"type": 'RET', "value": 'PRESS'},
+ {"properties": [("all", False)]}),
+ ("outliner.item_openclose", {"type": 'RET', "value": 'PRESS', "shift": True},
+ {"properties": [("all", True)]}),
+ ("outliner.item_rename", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, None),
+ ("outliner.operation", {"type": 'RIGHTMOUSE', "value": 'PRESS'}, None),
+ ("outliner.item_drag_drop", {"type": 'EVT_TWEAK_L', "value": 'ANY'}, None),
+ ("outliner.item_drag_drop", {"type": 'EVT_TWEAK_L', "value": 'ANY', "shift": True}, None),
+ ("outliner.show_hierarchy", {"type": 'HOME', "value": 'PRESS'}, None),
+ ("outliner.show_active", {"type": 'PERIOD', "value": 'PRESS'}, None),
+ ("outliner.show_active", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
+ ("outliner.scroll_page", {"type": 'PAGE_DOWN', "value": 'PRESS'},
+ {"properties": [("up", False)]}),
+ ("outliner.scroll_page", {"type": 'PAGE_UP', "value": 'PRESS'},
+ {"properties": [("up", True)]}),
+ ("outliner.show_one_level", {"type": 'NUMPAD_PLUS', "value": 'PRESS'}, None),
+ ("outliner.show_one_level", {"type": 'NUMPAD_MINUS', "value": 'PRESS'},
+ {"properties": [("open", False)]}),
+ *_template_items_select_actions("outliner.select_all"),
+ ("outliner.expanded_toggle", {"type": 'A', "value": 'PRESS', "shift": True}, None),
+ ("outliner.keyingset_add_selected", {"type": 'K', "value": 'PRESS'}, None),
+ ("outliner.keyingset_remove_selected", {"type": 'K', "value": 'PRESS', "alt": True}, None),
+ ("anim.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None),
+ ("anim.keyframe_delete", {"type": 'I', "value": 'PRESS', "alt": True}, None),
+ ("outliner.drivers_add_selected", {"type": 'D', "value": 'PRESS', "ctrl": True}, None),
+ ("outliner.drivers_delete_selected", {"type": 'D', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("outliner.collection_new", {"type": 'C', "value": 'PRESS'}, None),
+ ("outliner.collection_delete", {"type": 'X', "value": 'PRESS'}, None),
+ ("outliner.collection_delete", {"type": 'DEL', "value": 'PRESS'}, None),
+ ("object.move_to_collection", {"type": 'M', "value": 'PRESS'}, None),
+ ("object.link_to_collection", {"type": 'M', "value": 'PRESS', "shift": True}, None),
+ ("outliner.collection_exclude_set", {"type": 'E', "value": 'PRESS'}, None),
+ ("outliner.collection_exclude_clear", {"type": 'E', "value": 'PRESS', "alt": True}, None),
+ ("object.hide_view_clear", {"type": 'H', "value": 'PRESS', "alt": True},
+ {"properties": [("select", False)]}),
+ ("object.hide_view_set", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("object.hide_view_set", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ])
+
+ return keymap
+
+
+def km_uv_editor(params):
+ items = []
+ keymap = (
+ "UV Editor",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # TODO: expand into loop.
+ ("mesh.select_mode", {"type": 'ONE', "value": 'PRESS'},
+ {"properties": [("type", 'VERT')]}),
+ ("mesh.select_mode", {"type": 'TWO', "value": 'PRESS'},
+ {"properties": [("type", 'EDGE')]}),
+ ("mesh.select_mode", {"type": 'THREE', "value": 'PRESS'},
+ {"properties": [("type", 'FACE')]}),
+ ("mesh.select_mode", {"type": 'ONE', "value": 'PRESS', "shift": True},
+ {"properties": [("use_extend", True), ("type", 'VERT')]}),
+ ("mesh.select_mode", {"type": 'TWO', "value": 'PRESS', "shift": True},
+ {"properties": [("use_extend", True), ("type", 'EDGE')]}),
+ ("mesh.select_mode", {"type": 'THREE', "value": 'PRESS', "shift": True},
+ {"properties": [("use_extend", True), ("type", 'FACE')]}),
+ ("mesh.select_mode", {"type": 'ONE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("use_expand", True), ("type", 'VERT')]}),
+ ("mesh.select_mode", {"type": 'TWO', "value": 'PRESS', "ctrl": True},
+ {"properties": [("use_expand", True), ("type", 'EDGE')]}),
+ ("mesh.select_mode", {"type": 'THREE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("use_expand", True), ("type", 'FACE')]}),
+ ("mesh.select_mode", {"type": 'ONE', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("use_extend", True), ("use_expand", True), ("type", 'VERT')]}),
+ ("mesh.select_mode", {"type": 'TWO', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("use_extend", True), ("use_expand", True), ("type", 'EDGE')]}),
+ ("mesh.select_mode", {"type": 'THREE', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("use_extend", True), ("use_expand", True), ("type", 'FACE')]}),
+ ("mesh.select_mode", {"type": 'FOUR', "value": 'PRESS'}, None),
+ ("wm.context_set_enum", {"type": 'ONE', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.uv_select_mode'), ("value", 'VERTEX')]}),
+ ("wm.context_set_enum", {"type": 'TWO', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.uv_select_mode'), ("value", 'EDGE')]}),
+ ("wm.context_set_enum", {"type": 'THREE', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.uv_select_mode'), ("value", 'FACE')]}),
+ ("wm.context_set_enum", {"type": 'FOUR', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.uv_select_mode'), ("value", 'ISLAND')]}),
+ ("uv.mark_seam", {"type": 'E', "value": 'PRESS', "ctrl": True}, None),
+ ("uv.select", {"type": params.select_mouse, "value": 'PRESS'},
+ {"properties": [("extend", False)]}),
+ ("uv.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True)]}),
+ ("uv.select_loop", {"type": params.select_mouse, "value": 'PRESS', "alt": True},
+ {"properties": [("extend", False)]}),
+ ("uv.select_loop", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("extend", True)]}),
+ ("uv.select_split", {"type": 'Y', "value": 'PRESS'}, None),
+ ("uv.select_box", {"type": 'B', "value": 'PRESS'},
+ {"properties": [("pinned", False)]}),
+ ("uv.select_box", {"type": 'B', "value": 'PRESS', "ctrl": True},
+ {"properties": [("pinned", True)]}),
+ ("uv.circle_select", {"type": 'C', "value": 'PRESS'}, None),
+ ("uv.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True},
+ {"properties": [("deselect", False)]}),
+ ("uv.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True},
+ {"properties": [("deselect", True)]}),
+ ("uv.select_linked", {"type": 'L', "value": 'PRESS', "ctrl": True},
+ {"properties": [("extend", True), ("deselect", False)]}),
+ ("uv.select_linked_pick", {"type": 'L', "value": 'PRESS'},
+ {"properties": [("extend", True), ("deselect", False)]}),
+ ("uv.select_linked", {"type": 'L', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("extend", False), ("deselect", True)]}),
+ ("uv.select_linked_pick", {"type": 'L', "value": 'PRESS', "shift": True},
+ {"properties": [("extend", False), ("deselect", True)]}),
+ ("uv.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
+ ("uv.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
+ *_template_items_select_actions("uv.select_all"),
+ ("uv.select_pinned", {"type": 'P', "value": 'PRESS', "shift": True}, None),
+ op_menu("IMAGE_MT_uvs_weldalign", {"type": 'W', "value": 'PRESS', "shift": True}),
+ ("uv.stitch", {"type": 'V', "value": 'PRESS'}, None),
+ ("uv.pin", {"type": 'P', "value": 'PRESS'},
+ {"properties": [("clear", False)]}),
+ ("uv.pin", {"type": 'P', "value": 'PRESS', "alt": True},
+ {"properties": [("clear", True)]}),
+ ("uv.unwrap", {"type": 'U', "value": 'PRESS'}, None),
+ ("uv.hide", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("uv.hide", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ("uv.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
+ ("uv.cursor_set", {"type": params.action_mouse, "value": 'PRESS'}, None),
+ op_menu_pie("IMAGE_MT_uvs_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True}),
+ op_menu("IMAGE_MT_uvs_select_mode", {"type": 'TAB', "value": 'PRESS', "ctrl": True}),
+ op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
+ ("wm.context_toggle_enum", {"type": 'O', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.proportional_edit'), ("value_1", 'DISABLED'), ("value_2", 'ENABLED')]}),
+ ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
+ ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
+ ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
+ ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
+ ("transform.shear", {"type": 'S', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
+ ("transform.mirror", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
+ ("wm.context_toggle", {"type": 'TAB', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'tool_settings.use_snap')]}),
+ ("wm.context_menu_enum", {"type": 'TAB', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("data_path", 'tool_settings.snap_uv_element')]}),
+ ])
+
+ if params.legacy:
+ items.extend([
+ ("uv.minimize_stretch", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
+ ("uv.pack_islands", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
+ ("uv.average_islands_scale", {"type": 'A', "value": 'PRESS', "ctrl": True}, None),
+ ("wm.context_toggle", {"type": 'Q', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.use_uv_sculpt')]}),
+ ])
+
+ return keymap
+
+
+def km_uv_sculpt(_params):
+ items = []
+ keymap = (
+ "UV Sculpt",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("wm.context_toggle", {"type": 'Q', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.use_uv_sculpt')]}),
+ ("sculpt.uv_sculpt_stroke", {"type": 'LEFTMOUSE', "value": 'PRESS'},
+ {"properties": [("mode", 'NORMAL')]}),
+ ("sculpt.uv_sculpt_stroke", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'INVERT')]}),
+ ("sculpt.uv_sculpt_stroke", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("mode", 'RELAX')]}),
+ ("brush.scale_size", {"type": 'LEFT_BRACKET', "value": 'PRESS'},
+ {"properties": [("scalar", 0.9)]}),
+ ("brush.scale_size", {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
+ {"properties": [("scalar", 1.0 / 0.9)]}),
+ *_template_paint_radial_control("uv_sculpt"),
+ ("brush.uv_sculpt_tool_set", {"type": 'S', "value": 'PRESS'},
+ {"properties": [("tool", 'RELAX')]}),
+ ("brush.uv_sculpt_tool_set", {"type": 'P', "value": 'PRESS'},
+ {"properties": [("tool", 'PINCH')]}),
+ ("brush.uv_sculpt_tool_set", {"type": 'G', "value": 'PRESS'},
+ {"properties": [("tool", 'GRAB')]}),
+ ])
+
+ return keymap
+
+
+# 3D View: all regions.
+def km_view3d_generic(_params):
+ items = []
+ keymap = (
+ "3D View Generic",
+ {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("view3d.properties", {"type": 'N', "value": 'PRESS'}, None),
+ ("view3d.toolshelf", {"type": 'T', "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+# 3D View: main region.
+def km_view3d(params):
+ items = []
+ keymap = (
+ "3D View",
+ {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Cursor.
+ ("view3d.cursor3d", {"type": params.action_mouse, "value": 'CLICK'}, None),
+ # Navigation.
+ ("view3d.rotate", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
+ ("view3d.move", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True}, None),
+ ("view3d.zoom", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "ctrl": True}, None),
+ ("view3d.dolly", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("view3d.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS', "ctrl": True},
+ {"properties": [("use_all_regions", True)]}),
+ ("view3d.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'},
+ {"properties": [("use_all_regions", False)]}),
+ ("view3d.smoothview", {"type": 'TIMER1', "value": 'ANY', "any": True}, None),
+ ("view3d.rotate", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
+ ("view3d.rotate", {"type": 'MOUSEROTATE', "value": 'ANY'}, None),
+ ("view3d.move", {"type": 'TRACKPADPAN', "value": 'ANY', "shift": True}, None),
+ ("view3d.zoom", {"type": 'TRACKPADZOOM', "value": 'ANY'}, None),
+ ("view3d.zoom", {"type": 'TRACKPADPAN', "value": 'ANY', "ctrl": True}, None),
+ ("view3d.zoom", {"type": 'NUMPAD_PLUS', "value": 'PRESS'},
+ {"properties": [("delta", 1)]}),
+ ("view3d.zoom", {"type": 'NUMPAD_MINUS', "value": 'PRESS'},
+ {"properties": [("delta", -1)]}),
+ ("view3d.zoom", {"type": 'EQUAL', "value": 'PRESS', "ctrl": True},
+ {"properties": [("delta", 1)]}),
+ ("view3d.zoom", {"type": 'MINUS', "value": 'PRESS', "ctrl": True},
+ {"properties": [("delta", -1)]}),
+ ("view3d.zoom", {"type": 'WHEELINMOUSE', "value": 'PRESS'},
+ {"properties": [("delta", 1)]}),
+ ("view3d.zoom", {"type": 'WHEELOUTMOUSE', "value": 'PRESS'},
+ {"properties": [("delta", -1)]}),
+ ("view3d.dolly", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "shift": True},
+ {"properties": [("delta", 1)]}),
+ ("view3d.dolly", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "shift": True},
+ {"properties": [("delta", -1)]}),
+ ("view3d.dolly", {"type": 'EQUAL', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("delta", 1)]}),
+ ("view3d.dolly", {"type": 'MINUS', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("delta", -1)]}),
+ ("view3d.view_center_camera", {"type": 'HOME', "value": 'PRESS'}, None),
+ ("view3d.view_center_lock", {"type": 'HOME', "value": 'PRESS'}, None),
+ ("view3d.view_all", {"type": 'HOME', "value": 'PRESS'},
+ {"properties": [("center", False)]}),
+ ("view3d.view_all", {"type": 'HOME', "value": 'PRESS', "ctrl": True},
+ {"properties": [("use_all_regions", True), ("center", False)]}),
+ op_menu_pie("VIEW3D_MT_view_pie", {"type": 'ACCENT_GRAVE', "value": 'PRESS'}),
+ ("view3d.navigate", {"type": 'ACCENT_GRAVE', "value": 'PRESS', "shift": True}, None),
+ # Numpad views.
+ ("view3d.view_camera", {"type": 'NUMPAD_0', "value": 'PRESS'}, None),
+ ("view3d.view_axis", {"type": 'NUMPAD_1', "value": 'PRESS'},
+ {"properties": [("type", 'FRONT')]}),
+ ("view3d.view_orbit", {"type": 'NUMPAD_2', "value": 'PRESS'},
+ {"properties": [("type", 'ORBITDOWN')]}),
+ ("view3d.view_axis", {"type": 'NUMPAD_3', "value": 'PRESS'},
+ {"properties": [("type", 'RIGHT')]}),
+ ("view3d.view_orbit", {"type": 'NUMPAD_4', "value": 'PRESS'},
+ {"properties": [("type", 'ORBITLEFT')]}),
+ ("view3d.view_persportho", {"type": 'NUMPAD_5', "value": 'PRESS'}, None),
+ ("view3d.view_orbit", {"type": 'NUMPAD_6', "value": 'PRESS'},
+ {"properties": [("type", 'ORBITRIGHT')]}),
+ ("view3d.view_axis", {"type": 'NUMPAD_7', "value": 'PRESS'},
+ {"properties": [("type", 'TOP')]}),
+ ("view3d.view_orbit", {"type": 'NUMPAD_8', "value": 'PRESS'},
+ {"properties": [("type", 'ORBITUP')]}),
+ ("view3d.view_axis", {"type": 'NUMPAD_1', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'BACK')]}),
+ ("view3d.view_axis", {"type": 'NUMPAD_3', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'LEFT')]}),
+ ("view3d.view_axis", {"type": 'NUMPAD_7', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'BOTTOM')]}),
+ ("view3d.view_pan", {"type": 'NUMPAD_2', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'PANDOWN')]}),
+ ("view3d.view_pan", {"type": 'NUMPAD_4', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'PANLEFT')]}),
+ ("view3d.view_pan", {"type": 'NUMPAD_6', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'PANRIGHT')]}),
+ ("view3d.view_pan", {"type": 'NUMPAD_8', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'PANUP')]}),
+ ("view3d.view_roll", {"type": 'NUMPAD_4', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'LEFT')]}),
+ ("view3d.view_roll", {"type": 'NUMPAD_6', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'RIGHT')]}),
+ ("view3d.view_orbit", {"type": 'NUMPAD_9', "value": 'PRESS'},
+ {"properties": [("angle", 3.1415927), ("type", 'ORBITRIGHT')]}),
+ ("view3d.view_axis", {"type": 'NUMPAD_1', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'FRONT'), ("align_active", True)]}),
+ ("view3d.view_axis", {"type": 'NUMPAD_3', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'RIGHT'), ("align_active", True)]}),
+ ("view3d.view_axis", {"type": 'NUMPAD_7', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'TOP'), ("align_active", True)]}),
+ ("view3d.view_axis", {"type": 'NUMPAD_1', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("type", 'BACK'), ("align_active", True)]}),
+ ("view3d.view_axis", {"type": 'NUMPAD_3', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("type", 'LEFT'), ("align_active", True)]}),
+ ("view3d.view_axis", {"type": 'NUMPAD_7', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("type", 'BOTTOM'), ("align_active", True)]}),
+ ("view3d.view_axis", {"type": 'EVT_TWEAK_M', "value": 'NORTH', "alt": True},
+ {"properties": [("type", 'TOP'), ("relative", True)]}),
+ ("view3d.view_axis", {"type": 'EVT_TWEAK_M', "value": 'SOUTH', "alt": True},
+ {"properties": [("type", 'BOTTOM'), ("relative", True)]}),
+ ("view3d.view_axis", {"type": 'EVT_TWEAK_M', "value": 'EAST', "alt": True},
+ {"properties": [("type", 'RIGHT'), ("relative", True)]}),
+ ("view3d.view_axis", {"type": 'EVT_TWEAK_M', "value": 'WEST', "alt": True},
+ {"properties": [("type", 'LEFT'), ("relative", True)]}),
+ ("view3d.ndof_orbit_zoom", {"type": 'NDOF_MOTION', "value": 'ANY'}, None),
+ ("view3d.ndof_orbit", {"type": 'NDOF_MOTION', "value": 'ANY', "ctrl": True}, None),
+ ("view3d.ndof_pan", {"type": 'NDOF_MOTION', "value": 'ANY', "shift": True}, None),
+ ("view3d.ndof_all", {"type": 'NDOF_MOTION', "value": 'ANY', "shift": True, "ctrl": True}, None),
+ ("view3d.view_selected", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'},
+ {"properties": [("use_all_regions", False)]}),
+ ("view3d.view_roll", {"type": 'NDOF_BUTTON_ROLL_CCW', "value": 'PRESS'},
+ {"properties": [("type", 'LEFT')]}),
+ ("view3d.view_roll", {"type": 'NDOF_BUTTON_ROLL_CCW', "value": 'PRESS'},
+ {"properties": [("type", 'RIGHT')]}),
+ ("view3d.view_axis", {"type": 'NDOF_BUTTON_FRONT', "value": 'PRESS'},
+ {"properties": [("type", 'FRONT')]}),
+ ("view3d.view_axis", {"type": 'NDOF_BUTTON_BACK', "value": 'PRESS'},
+ {"properties": [("type", 'BACK')]}),
+ ("view3d.view_axis", {"type": 'NDOF_BUTTON_LEFT', "value": 'PRESS'},
+ {"properties": [("type", 'LEFT')]}),
+ ("view3d.view_axis", {"type": 'NDOF_BUTTON_RIGHT', "value": 'PRESS'},
+ {"properties": [("type", 'RIGHT')]}),
+ ("view3d.view_axis", {"type": 'NDOF_BUTTON_TOP', "value": 'PRESS'},
+ {"properties": [("type", 'TOP')]}),
+ ("view3d.view_axis", {"type": 'NDOF_BUTTON_BOTTOM', "value": 'PRESS'},
+ {"properties": [("type", 'BOTTOM')]}),
+ ("view3d.view_axis", {"type": 'NDOF_BUTTON_FRONT', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'FRONT'), ("align_active", True)]}),
+ ("view3d.view_axis", {"type": 'NDOF_BUTTON_RIGHT', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'RIGHT'), ("align_active", True)]}),
+ ("view3d.view_axis", {"type": 'NDOF_BUTTON_TOP', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'TOP'), ("align_active", True)]}),
+ # Selection.
+ ("view3d.select", {"type": params.select_mouse, "value": 'PRESS'},
+ {"properties": [
+ ("extend", False),
+ ("deselect", False),
+ ("toggle", False),
+ ("center", False),
+ ("enumerate", False),
+ ("object", False),
+ ], },),
+ ("view3d.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [
+ ("extend", False),
+ ("deselect", False),
+ ("toggle", True),
+ ("center", False),
+ ("enumerate", False),
+ ("object", False),
+ ], },),
+ ("view3d.select", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True},
+ {"properties": [
+ ("extend", False),
+ ("deselect", False),
+ ("toggle", False),
+ ("center", True),
+ ("enumerate", False),
+ ("object", True),
+ ], },),
+ ("view3d.select", {"type": params.select_mouse, "value": 'PRESS', "alt": True},
+ {"properties": [
+ ("extend", False),
+ ("deselect", False),
+ ("toggle", False),
+ ("center", False),
+ ("enumerate", True),
+ ("object", False),
+ ], },),
+ ("view3d.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [
+ ("extend", True),
+ ("deselect", False),
+ ("toggle", True),
+ ("center", True),
+ ("enumerate", False),
+ ("object", False),
+ ], },),
+ ("view3d.select", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [
+ ("extend", False),
+ ("deselect", False),
+ ("toggle", False),
+ ("center", True),
+ ("enumerate", True),
+ ("object", False),
+ ], },),
+ ("view3d.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [
+ ("extend", False),
+ ("deselect", False),
+ ("toggle", True),
+ ("center", False),
+ ("enumerate", True),
+ ("object", False),
+ ], },),
+ ("view3d.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
+ {"properties": [
+ ("extend", False),
+ ("deselect", False),
+ ("toggle", True),
+ ("center", True),
+ ("enumerate", True),
+ ("object", False),
+ ], },),
+ ("view3d.select_box", {"type": 'B', "value": 'PRESS'}, None),
+ ("view3d.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True},
+ {"properties": [("mode", 'ADD')]}),
+ ("view3d.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True},
+ {"properties": [("mode", 'SUB')]}),
+ ("view3d.select_circle", {"type": 'C', "value": 'PRESS'}, None),
+ # Borders.
+ ("view3d.clip_border", {"type": 'B', "value": 'PRESS', "alt": True}, None),
+ ("view3d.zoom_border", {"type": 'B', "value": 'PRESS', "shift": True}, None),
+ ("view3d.render_border", {"type": 'B', "value": 'PRESS', "ctrl": True}, None),
+ ("view3d.clear_render_border", {"type": 'B', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ # Cameras.
+ ("view3d.camera_to_view", {"type": 'NUMPAD_0', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("view3d.object_as_camera", {"type": 'NUMPAD_0', "value": 'PRESS', "ctrl": True}, None),
+ # Copy/paste.
+ ("view3d.copybuffer", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
+ ("view3d.pastebuffer", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
+ # Menus.
+ op_menu_pie("VIEW3D_MT_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True}),
+ op_menu_pie("VIEW3D_MT_pivot_pie", {"type": 'PERIOD', "value": 'PRESS'}),
+ op_menu_pie("VIEW3D_MT_orientations_pie", {"type": 'COMMA', "value": 'PRESS'}),
+ # Transform.
+ ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
+ ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
+ ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
+ ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
+ ("transform.bend", {"type": 'W', "value": 'PRESS', "shift": True}, 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.mirror", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
+ ("wm.context_toggle", {"type": 'TAB', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'tool_settings.use_snap')]}),
+ op_panel("VIEW3D_PT_snapping", {"type": 'TAB', "value": 'PRESS', "shift": True, "ctrl": True}, [("keep_open", False)]),
+ ("object.transform_axis_target", {"type": 'T', "value": 'PRESS', "shift": True}, None),
+ ("transform.skin_resize", {"type": 'A', "value": 'PRESS', "ctrl": True}, None),
+ ])
+
+ if params.apple:
+ items.extend([
+ ("view3d.copybuffer", {"type": 'C', "value": 'PRESS', "oskey": True}, None),
+ ("view3d.pastebuffer", {"type": 'V', "value": 'PRESS', "oskey": True}, None),
+ ])
+
+ if not params.legacy:
+ # New pie menus.
+ items.extend([
+ ("wm.context_toggle", {"type": 'ACCENT_GRAVE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.show_gizmo_tool')]}),
+ op_menu_pie("VIEW3D_MT_pivot_pie", {"type": 'PERIOD', "value": 'PRESS'}),
+ op_menu_pie("VIEW3D_MT_orientations_pie", {"type": 'COMMA', "value": 'PRESS'}),
+ op_menu_pie("VIEW3D_MT_shading_pie", {"type": 'Z', "value": 'PRESS'}),
+ ("view3d.toggle_shading", {"type": 'Z', "value": 'PRESS', "alt": True},
+ {"properties": [("type", 'MATERIAL')]}),
+ ("view3d.toggle_shading", {"type": 'Z', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'RENDERED')]}),
+ ])
+ else:
+ items.extend([
+ # Old navigation.
+ ("view3d.view_lock_to_active", {"type": 'NUMPAD_PERIOD', "value": 'PRESS', "shift": True}, None),
+ ("view3d.view_lock_clear", {"type": 'NUMPAD_PERIOD', "value": 'PRESS', "alt": True}, None),
+ ("view3d.navigate", {"type": 'F', "value": 'PRESS', "shift": True}, None),
+ ("view3d.zoom_camera_1_to_1", {"type": 'NUMPAD_ENTER', "value": 'PRESS', "shift": True}, None),
+ ("view3d.view_center_cursor", {"type": 'HOME', "value": 'PRESS', "alt": True}, None),
+ ("view3d.view_center_pick", {"type": 'F', "value": 'PRESS', "alt": True}, None),
+ ("view3d.view_all", {"type": 'C', "value": 'PRESS', "shift": True},
+ {"properties": [("center", True)]}),
+ ("view3d.view_pan", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'PANRIGHT')]}),
+ ("view3d.view_pan", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'PANLEFT')]}),
+ ("view3d.view_pan", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'PANUP')]}),
+ ("view3d.view_pan", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'PANDOWN')]}),
+ ("view3d.view_orbit", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("type", 'ORBITLEFT')]}),
+ ("view3d.view_orbit", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("type", 'ORBITRIGHT')]}),
+ ("view3d.view_orbit", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("type", 'ORBITUP')]}),
+ ("view3d.view_orbit", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("type", 'ORBITDOWN')]}),
+ ("view3d.view_roll", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("type", 'LEFT')]}),
+ ("view3d.view_roll", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("type", 'RIGHT')]}),
+ ("transform.create_orientation", {"type": 'SPACE', "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("use", True)]}),
+ ("transform.translate", {"type": 'T', "value": 'PRESS', "shift": True},
+ {"properties": [("texture_space", True)]}),
+ ("transform.resize", {"type": 'T', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("texture_space", True)]}),
+ # Old pivot.
+ ("wm.context_set_enum", {"type": 'COMMA', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'BOUNDING_BOX_CENTER')]}),
+ ("wm.context_set_enum", {"type": 'COMMA', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'MEDIAN_POINT')]}),
+ ("wm.context_toggle", {"type": 'COMMA', "value": 'PRESS', "alt": True},
+ {"properties": [("data_path", 'tool_settings.use_transform_pivot_point_align')]}),
+ ("wm.context_toggle", {"type": 'SPACE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.show_gizmo_tool')]}),
+ ("wm.context_set_enum", {"type": 'PERIOD', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'CURSOR')]}),
+ ("wm.context_set_enum", {"type": 'PERIOD', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'INDIVIDUAL_ORIGINS')]}),
+ ("wm.context_set_enum", {"type": 'PERIOD', "value": 'PRESS', "alt": True},
+ {"properties": [("data_path", 'space_data.pivot_point'), ("value", 'ACTIVE_ELEMENT')]}),
+ # Old shading.
+ ("wm.context_toggle_enum", {"type": 'Z', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.shading.type'), ("value_1", 'WIREFRAME'), ("value_2", 'SOLID')]}),
+ ("wm.context_toggle_enum", {"type": 'Z', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'space_data.shading.type'), ("value_1", 'RENDERED'), ("value_2", 'SOLID')]}),
+ ("wm.context_toggle_enum", {"type": 'Z', "value": 'PRESS', "alt": True},
+ {"properties": [("data_path", 'space_data.shading.type'), ("value_1", 'MATERIAL'), ("value_2", 'SOLID')]}),
+ ])
+
+ return keymap
+
+
+def km_mask_editing(params):
+ items = []
+ keymap = (
+ "Mask Editing",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("mask.new", {"type": 'N', "value": 'PRESS', "alt": True}, None),
+ op_menu("MASK_MT_add", {"type": 'A', "value": 'PRESS', "shift": True}),
+ op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
+ ("wm.context_toggle", {"type": 'O', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.use_proportional_edit_mask')]}),
+ ("mask.add_vertex_slide", {"type": params.action_mouse, "value": 'PRESS', "ctrl": True}, None),
+ ("mask.add_feather_vertex_slide", {"type": params.action_mouse, "value": 'PRESS', "shift": True}, None),
+ ("mask.delete", {"type": 'X', "value": 'PRESS'}, None),
+ ("mask.delete", {"type": 'DEL', "value": 'PRESS'}, None),
+ ("mask.select", {"type": params.select_mouse, "value": 'PRESS'},
+ {"properties": [("extend", False), ("deselect", False), ("toggle", False)]}),
+ ("mask.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("extend", False), ("deselect", False), ("toggle", True)]}),
+ *_template_items_select_actions("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": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True, "alt": True},
+ {"properties": [("deselect", False)]}),
+ ("mask.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True, "alt": True},
+ {"properties": [("deselect", True)]}),
+ ("mask.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
+ ("mask.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
+ ("mask.hide_view_clear", {"type": 'H', "value": 'PRESS', "alt": True}, None),
+ ("mask.hide_view_set", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("mask.hide_view_set", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ("clip.select", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True},
+ {"properties": [("extend", False)]}),
+ ("mask.cyclic_toggle", {"type": 'C', "value": 'PRESS', "alt": True}, None),
+ ("mask.slide_point", {"type": params.action_mouse, "value": 'PRESS'}, None),
+ ("mask.slide_spline_curvature", {"type": params.action_mouse, "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),
+ ("uv.cursor_set", {"type": params.action_mouse, "value": 'PRESS'}, None),
+ ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
+ ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
+ ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
+ ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
+ ("transform.transform", {"type": 'S', "value": 'PRESS', "alt": True},
+ {"properties": [("mode", 'MASK_SHRINKFATTEN')]}),
+ ])
+
+ 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": 'EVT_TWEAK_S', "value": 'ANY'}, None),
+ ("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": [("extend", False), ("camera", True)]}),
+ ("marker.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("extend", True), ("camera", True)]}),
+ ("marker.select_box", {"type": 'B', "value": 'PRESS'}, None),
+ *_template_items_select_actions("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_graph_editor_generic(_params):
+ items = []
+ keymap = (
+ "Graph Editor Generic",
+ {"space_type": 'GRAPH_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("graph.properties", {"type": 'N', "value": 'PRESS'}, None),
+ ("graph.extrapolation_type", {"type": 'E', "value": 'PRESS', "shift": True}, None),
+ ("anim.channels_find", {"type": 'F', "value": 'PRESS', "ctrl": True}, None),
+ ("graph.hide", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("graph.hide", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ("graph.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
+ ])
+
+ return keymap
+
+
+def km_graph_editor(params):
+ items = []
+ keymap = (
+ "Graph Editor",
+ {"space_type": 'GRAPH_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("wm.context_toggle", {"type": 'H', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.show_handles')]}),
+ ("graph.cursor_set", {"type": params.action_mouse, "value": 'PRESS'}, None),
+ ("graph.clickselect", {"type": params.select_mouse, "value": 'PRESS'},
+ {"properties": [("extend", False), ("column", False), ("curves", False)]}),
+ ("graph.clickselect", {"type": params.select_mouse, "value": 'PRESS', "alt": True},
+ {"properties": [("extend", False), ("column", True), ("curves", False)]}),
+ ("graph.clickselect", {"type": params.select_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True), ("column", False), ("curves", False)]}),
+ ("graph.clickselect", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("extend", True), ("column", True), ("curves", False)]}),
+ ("graph.clickselect", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("extend", False), ("column", False), ("curves", True)]}),
+ ("graph.clickselect", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
+ {"properties": [("extend", True), ("column", False), ("curves", True)]}),
+ ("graph.select_leftright", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'CHECK'), ("extend", False)]}),
+ ("graph.select_leftright", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("mode", 'CHECK'), ("extend", True)]}),
+ ("graph.select_leftright", {"type": 'LEFT_BRACKET', "value": 'PRESS'},
+ {"properties": [("mode", 'LEFT'), ("extend", False)]}),
+ ("graph.select_leftright", {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
+ {"properties": [("mode", 'RIGHT'), ("extend", False)]}),
+ *_template_items_select_actions("graph.select_all"),
+ ("graph.select_box", {"type": 'B', "value": 'PRESS'},
+ {"properties": [("axis_range", False), ("include_handles", False)]}),
+ ("graph.select_box", {"type": 'B', "value": 'PRESS', "alt": True},
+ {"properties": [("axis_range", True), ("include_handles", False)]}),
+ ("graph.select_box", {"type": 'B', "value": 'PRESS', "ctrl": True},
+ {"properties": [("axis_range", False), ("include_handles", True)]}),
+ ("graph.select_box", {"type": 'B', "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("axis_range", True), ("include_handles", True)]}),
+ ("graph.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True},
+ {"properties": [("deselect", False)]}),
+ ("graph.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True},
+ {"properties": [("deselect", True)]}),
+ ("graph.select_circle", {"type": 'C', "value": 'PRESS'}, None),
+ ("graph.select_column", {"type": 'K', "value": 'PRESS'},
+ {"properties": [("mode", 'KEYS')]}),
+ ("graph.select_column", {"type": 'K', "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'CFRA')]}),
+ ("graph.select_column", {"type": 'K', "value": 'PRESS', "shift": True},
+ {"properties": [("mode", 'MARKERS_COLUMN')]}),
+ ("graph.select_column", {"type": 'K', "value": 'PRESS', "alt": True},
+ {"properties": [("mode", 'MARKERS_BETWEEN')]}),
+ ("graph.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
+ ("graph.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
+ ("graph.select_linked", {"type": 'L', "value": 'PRESS'}, None),
+ ("graph.frame_jump", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
+ op_menu_pie("GRAPH_MT_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True}),
+ ("graph.mirror", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
+ ("graph.handle_type", {"type": 'V', "value": 'PRESS'}, None),
+ ("graph.interpolation_type", {"type": 'T', "value": 'PRESS'}, None),
+ ("graph.easing_type", {"type": 'E', "value": 'PRESS', "ctrl": True}, None),
+ ("graph.smooth", {"type": 'O', "value": 'PRESS', "alt": True}, None),
+ ("graph.sample", {"type": 'O', "value": 'PRESS', "shift": True, "alt": True}, None),
+ ("graph.bake", {"type": 'C', "value": 'PRESS', "alt": True}, None),
+ op_menu("GRAPH_MT_delete", {"type": 'X', "value": 'PRESS'}),
+ op_menu("GRAPH_MT_delete", {"type": 'DEL', "value": 'PRESS'}),
+ op_menu("GRAPH_MT_specials", {"type": 'W', "value": 'PRESS'}),
+ ("graph.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
+ ("graph.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None),
+ ("graph.click_insert", {"type": params.action_mouse, "value": 'CLICK', "ctrl": True},
+ {"properties": [("extend", False)]}),
+ ("graph.click_insert", {"type": params.action_mouse, "value": 'CLICK', "shift": True, "ctrl": True},
+ {"properties": [("extend", True)]}),
+ ("graph.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
+ ("graph.paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
+ ("graph.paste", {"type": 'V', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("flipped", True)]}),
+ ("graph.previewrange_set", {"type": 'P', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("graph.view_all", {"type": 'HOME', "value": 'PRESS'}, None),
+ ("graph.view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
+ ("graph.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
+ ("graph.view_frame", {"type": 'NUMPAD_0', "value": 'PRESS'}, None),
+ ("graph.fmodifier_add", {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("only_active", False)]}),
+ ("anim.channels_editable_toggle", {"type": 'TAB', "value": 'PRESS'}, None),
+ ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
+ ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
+ ("transform.transform", {"type": 'E', "value": 'PRESS'},
+ {"properties": [("mode", 'TIME_EXTEND')]}),
+ ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
+ ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
+ ("wm.context_toggle", {"type": 'O', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.use_proportional_fcurve')]}),
+ op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
+ op_menu_pie("GRAPH_MT_pivot_pie", {"type": 'PERIOD', "value": 'PRESS'}),
+ ("marker.add", {"type": 'M', "value": 'PRESS'}, None),
+ ("marker.rename", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
+ ])
+
+ if params.apple:
+ items.extend([
+ ("graph.copy", {"type": 'C', "value": 'PRESS', "oskey": True}, None),
+ ("graph.paste", {"type": 'V', "value": 'PRESS', "oskey": True}, None),
+ ("graph.paste", {"type": 'V', "value": 'PRESS', "shift": True, "oskey": True},
+ {"properties": [("flipped", True)]}),
+ ])
+
+ return keymap
+
+
+def km_image_generic(_params):
+ items = []
+ keymap = (
+ "Image Generic",
+ {"space_type": 'IMAGE_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("image.new", {"type": 'N', "value": 'PRESS', "alt": True}, None),
+ ("image.open", {"type": 'O', "value": 'PRESS', "alt": True}, None),
+ ("image.reload", {"type": 'R', "value": 'PRESS', "alt": True}, None),
+ ("image.read_viewlayers", {"type": 'R', "value": 'PRESS', "ctrl": True}, None),
+ ("image.save", {"type": 'S', "value": 'PRESS', "alt": True}, None),
+ ("image.save_as", {"type": 'S', "value": 'PRESS', "shift": True}, None),
+ ("image.properties", {"type": 'N', "value": 'PRESS'}, None),
+ ("image.toolshelf", {"type": 'T', "value": 'PRESS'}, None),
+ op_menu("IMAGE_MT_specials", {"type": 'W', "value": 'PRESS'}),
+ ("image.cycle_render_slot", {"type": 'J', "value": 'PRESS'}, None),
+ ("image.cycle_render_slot", {"type": 'J', "value": 'PRESS', "alt": True},
+ {"properties": [("reverse", True)]}),
+ ])
+
+ return keymap
+
+
+def km_image(params):
+ items = []
+ keymap = (
+ "Image",
+ {"space_type": 'IMAGE_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("image.view_all", {"type": 'HOME', "value": 'PRESS'}, None),
+ ("image.view_all", {"type": 'HOME', "value": 'PRESS', "shift": True},
+ {"properties": [("fit_view", True)]}),
+ ("image.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
+ ("image.view_pan", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
+ ("image.view_pan", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True}, None),
+ ("image.view_pan", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
+ ("image.view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
+ ("image.view_ndof", {"type": 'NDOF_MOTION', "value": 'ANY'}, None),
+ ("image.view_zoom_in", {"type": 'WHEELINMOUSE', "value": 'PRESS'}, None),
+ ("image.view_zoom_out", {"type": 'WHEELOUTMOUSE', "value": 'PRESS'}, None),
+ ("image.view_zoom_in", {"type": 'NUMPAD_PLUS', "value": 'PRESS'}, None),
+ ("image.view_zoom_out", {"type": 'NUMPAD_MINUS', "value": 'PRESS'}, None),
+ ("image.view_zoom", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "ctrl": True}, None),
+ ("image.view_zoom", {"type": 'TRACKPADZOOM', "value": 'ANY'}, None),
+ ("image.view_zoom", {"type": 'TRACKPADPAN', "value": 'ANY', "ctrl": True}, None),
+ ("image.view_zoom_border", {"type": 'B', "value": 'PRESS', "shift": True}, None),
+ ("image.view_zoom_ratio", {"type": 'NUMPAD_8', "value": 'PRESS', "ctrl": True},
+ {"properties": [("ratio", 8.0)]}),
+ ("image.view_zoom_ratio", {"type": 'NUMPAD_4', "value": 'PRESS', "ctrl": True},
+ {"properties": [("ratio", 4.0)]}),
+ ("image.view_zoom_ratio", {"type": 'NUMPAD_2', "value": 'PRESS', "ctrl": True},
+ {"properties": [("ratio", 2.0)]}),
+ ("image.view_zoom_ratio", {"type": 'NUMPAD_8', "value": 'PRESS', "shift": True},
+ {"properties": [("ratio", 8.0)]}),
+ ("image.view_zoom_ratio", {"type": 'NUMPAD_4', "value": 'PRESS', "shift": True},
+ {"properties": [("ratio", 4.0)]}),
+ ("image.view_zoom_ratio", {"type": 'NUMPAD_2', "value": 'PRESS', "shift": True},
+ {"properties": [("ratio", 2.0)]}),
+ ("image.view_zoom_ratio", {"type": 'NUMPAD_1', "value": 'PRESS'},
+ {"properties": [("ratio", 1.0)]}),
+ ("image.view_zoom_ratio", {"type": 'NUMPAD_2', "value": 'PRESS'},
+ {"properties": [("ratio", 0.5)]}),
+ ("image.view_zoom_ratio", {"type": 'NUMPAD_4', "value": 'PRESS'},
+ {"properties": [("ratio", 0.25)]}),
+ ("image.view_zoom_ratio", {"type": 'NUMPAD_8', "value": 'PRESS'},
+ {"properties": [("ratio", 0.125)]}),
+ ("image.change_frame", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("image.sample", {"type": params.action_mouse, "value": 'PRESS'}, None),
+ ("image.curves_point_set", {"type": params.action_mouse, "value": 'PRESS', "ctrl": True},
+ {"properties": [("point", 'BLACK_POINT')]}),
+ ("image.curves_point_set", {"type": params.action_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("point", 'WHITE_POINT')]}),
+ ("object.mode_set", {"type": 'TAB', "value": 'PRESS'},
+ {"properties": [("mode", 'EDIT'), ("toggle", True)]}),
+ # TODO: expand into loop.
+ ("wm.context_set_int", {"type": 'ONE', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.image.render_slots.active_index'), ("value", 0)]}),
+ ("wm.context_set_int", {"type": 'TWO', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.image.render_slots.active_index'), ("value", 1)]}),
+ ("wm.context_set_int", {"type": 'THREE', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.image.render_slots.active_index'), ("value", 2)]}),
+ ("wm.context_set_int", {"type": 'FOUR', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.image.render_slots.active_index'), ("value", 3)]}),
+ ("wm.context_set_int", {"type": 'FIVE', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.image.render_slots.active_index'), ("value", 4)]}),
+ ("wm.context_set_int", {"type": 'SIX', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.image.render_slots.active_index'), ("value", 5)]}),
+ ("wm.context_set_int", {"type": 'SEVEN', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.image.render_slots.active_index'), ("value", 6)]}),
+ ("wm.context_set_int", {"type": 'EIGHT', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.image.render_slots.active_index'), ("value", 7)]}),
+ ("wm.context_set_int", {"type": 'NINE', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.image.render_slots.active_index'), ("value", 8)]}),
+ op_menu_pie("IMAGE_MT_pivot_pie", {"type": 'PERIOD', "value": 'PRESS'}),
+ ("image.render_border", {"type": 'B', "value": 'PRESS', "ctrl": True}, None),
+ ("image.clear_render_border", {"type": 'B', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ])
+
+ return keymap
+
+
+def km_node_generic(_params):
+ items = []
+ keymap = (
+ "Node Generic",
+ {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("node.properties", {"type": 'N', "value": 'PRESS'}, None),
+ ("node.toolbar", {"type": 'T', "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+def km_node_editor(params):
+ items = []
+ keymap = (
+ "Node Editor",
+ {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("node.select", {"type": params.action_mouse, "value": 'PRESS'},
+ {"properties": [("extend", False)]}),
+ ("node.select", {"type": params.select_mouse, "value": 'PRESS'},
+ {"properties": [("extend", False)]}),
+ ("node.select", {"type": params.action_mouse, "value": 'PRESS', "ctrl": True},
+ {"properties": [("extend", False)]}),
+ ("node.select", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True},
+ {"properties": [("extend", False)]}),
+ ("node.select", {"type": params.action_mouse, "value": 'PRESS', "alt": True},
+ {"properties": [("extend", False)]}),
+ ("node.select", {"type": params.select_mouse, "value": 'PRESS', "alt": True},
+ {"properties": [("extend", False)]}),
+ ("node.select", {"type": params.action_mouse, "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("extend", False)]}),
+ ("node.select", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("extend", False)]}),
+ ("node.select", {"type": params.action_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True)]}),
+ ("node.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True)]}),
+ ("node.select", {"type": params.action_mouse, "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("extend", True)]}),
+ ("node.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("extend", True)]}),
+ ("node.select", {"type": params.action_mouse, "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("extend", True)]}),
+ ("node.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("extend", True)]}),
+ ("node.select", {"type": params.action_mouse, "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
+ {"properties": [("extend", True)]}),
+ ("node.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
+ {"properties": [("extend", True)]}),
+ ("node.select_box", {"type": 'EVT_TWEAK_S', "value": 'ANY'},
+ {"properties": [("tweak", True)]}),
+ ("node.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True, "alt": True},
+ {"properties": [("deselect", False)]}),
+ ("node.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True, "alt": True},
+ {"properties": [("deselect", True)]}),
+ ("node.select_circle", {"type": 'C', "value": 'PRESS'}, None),
+ ("node.link", {"type": 'LEFTMOUSE', "value": 'PRESS'},
+ {"properties": [("detach", False)]}),
+ ("node.link", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("detach", True)]}),
+ ("node.resize", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("node.add_reroute", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True}, None),
+ ("node.links_cut", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, None),
+ ("node.select_link_viewer", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("node.backimage_move", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "alt": True}, None),
+ ("node.backimage_zoom", {"type": 'V', "value": 'PRESS'},
+ {"properties": [("factor", 1.0 / 1.2)]}),
+ ("node.backimage_zoom", {"type": 'V', "value": 'PRESS', "alt": True},
+ {"properties": [("factor", 1.2)]}),
+ ("node.backimage_fit", {"type": 'HOME', "value": 'PRESS', "alt": True}, None),
+ ("node.backimage_sample", {"type": params.action_mouse, "value": 'PRESS', "alt": True}, None),
+ op_menu("NODE_MT_specials", {"type": 'W', "value": 'PRESS'}),
+ ("node.link_make", {"type": 'F', "value": 'PRESS'},
+ {"properties": [("replace", False)]}),
+ ("node.link_make", {"type": 'F', "value": 'PRESS', "shift": True},
+ {"properties": [("replace", True)]}),
+ op_menu("NODE_MT_add", {"type": 'A', "value": 'PRESS', "shift": True}),
+ ("node.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
+ ("node.duplicate_move_keep_inputs", {"type": 'D', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("node.parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
+ ("node.detach", {"type": 'P', "value": 'PRESS', "alt": True}, None),
+ ("node.join", {"type": 'J', "value": 'PRESS', "ctrl": True}, None),
+ ("node.hide_toggle", {"type": 'H', "value": 'PRESS'}, None),
+ ("node.mute_toggle", {"type": 'M', "value": 'PRESS'}, None),
+ ("node.preview_toggle", {"type": 'H', "value": 'PRESS', "shift": True}, None),
+ ("node.hide_socket_toggle", {"type": 'H', "value": 'PRESS', "ctrl": True}, None),
+ ("node.view_all", {"type": 'HOME', "value": 'PRESS'}, None),
+ ("node.view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
+ ("node.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
+ ("node.select_box", {"type": 'B', "value": 'PRESS'},
+ {"properties": [("tweak", False)]}),
+ ("node.delete", {"type": 'X', "value": 'PRESS'}, None),
+ ("node.delete", {"type": 'DEL', "value": 'PRESS'}, None),
+ ("node.delete_reconnect", {"type": 'X', "value": 'PRESS', "ctrl": True}, None),
+ ("node.delete_reconnect", {"type": 'DEL', "value": 'PRESS', "ctrl": True}, None),
+ *_template_items_select_actions("node.select_all"),
+ ("node.select_linked_to", {"type": 'L', "value": 'PRESS', "shift": True}, None),
+ ("node.select_linked_from", {"type": 'L', "value": 'PRESS'}, None),
+ ("node.select_grouped", {"type": 'G', "value": 'PRESS', "shift": True},
+ {"properties": [("extend", False)]}),
+ ("node.select_grouped", {"type": 'G', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("extend", True)]}),
+ ("node.select_same_type_step", {"type": 'RIGHT_BRACKET', "value": 'PRESS', "shift": True},
+ {"properties": [("prev", False)]}),
+ ("node.select_same_type_step", {"type": 'LEFT_BRACKET', "value": 'PRESS', "shift": True},
+ {"properties": [("prev", True)]}),
+ ("node.find_node", {"type": 'F', "value": 'PRESS', "ctrl": True}, None),
+ ("node.group_make", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
+ ("node.group_ungroup", {"type": 'G', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("node.group_separate", {"type": 'P', "value": 'PRESS'}, None),
+ ("node.group_edit", {"type": 'TAB', "value": 'PRESS'},
+ {"properties": [("exit", False)]}),
+ ("node.group_edit", {"type": 'TAB', "value": 'PRESS', "ctrl": True},
+ {"properties": [("exit", True)]}),
+ ("node.read_viewlayers", {"type": 'R', "value": 'PRESS', "ctrl": True}, None),
+ ("node.render_changed", {"type": 'Z', "value": 'PRESS'}, None),
+ ("node.clipboard_copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
+ ("node.clipboard_paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
+ ("node.viewer_border", {"type": 'B', "value": 'PRESS', "ctrl": True}, None),
+ ("node.clear_viewer_border", {"type": 'B', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("node.translate_attach", {"type": 'G', "value": 'PRESS'}, None),
+ ("node.translate_attach", {"type": 'EVT_TWEAK_A', "value": 'ANY'}, None),
+ ("node.translate_attach", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
+ ("transform.translate", {"type": 'G', "value": 'PRESS'},
+ {"properties": [("release_confirm", True)]}),
+ ("transform.translate", {"type": 'EVT_TWEAK_A', "value": 'ANY'},
+ {"properties": [("release_confirm", True)]}),
+ ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'},
+ {"properties": [("release_confirm", True)]}),
+ ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
+ ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
+ ("node.move_detach_links", {"type": 'D', "value": 'PRESS', "alt": True}, None),
+ ("node.move_detach_links_release", {"type": 'EVT_TWEAK_A', "value": 'ANY', "alt": True}, None),
+ ("node.move_detach_links", {"type": 'EVT_TWEAK_S', "value": 'ANY', "alt": True}, None),
+ ("wm.context_toggle", {"type": 'TAB', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'tool_settings.use_snap')]}),
+ ("wm.context_menu_enum", {"type": 'TAB', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("data_path", 'tool_settings.snap_node_element')]}),
+ ])
+
+ if params.apple:
+ items.extend([
+ ("node.clipboard_copy", {"type": 'C', "value": 'PRESS', "oskey": True}, None),
+ ("node.clipboard_paste", {"type": 'V', "value": 'PRESS', "oskey": True}, None),
+ ])
+
+ return keymap
+
+
+def km_info(params):
+ items = []
+ keymap = (
+ "Info",
+ {"space_type": 'INFO', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("info.select_pick", {"type": params.select_mouse, "value": 'PRESS'}, None),
+ ("info.select_all_toggle", {"type": 'A', "value": 'PRESS'}, None),
+ ("info.select_box", {"type": 'B', "value": 'PRESS'}, None),
+ ("info.report_replay", {"type": 'R', "value": 'PRESS'}, None),
+ ("info.report_delete", {"type": 'X', "value": 'PRESS'}, None),
+ ("info.report_delete", {"type": 'DEL', "value": 'PRESS'}, None),
+ ("info.report_copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
+ ])
+
+ if params.apple:
+ items.extend([
+ ("info.report_copy", {"type": 'C', "value": 'PRESS', "oskey": True}, None),
+ ])
+
+ return keymap
+
+
+def km_file_browser(_params):
+ items = []
+ keymap = (
+ "File Browser",
+ {"space_type": 'FILE_BROWSER', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("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),
+ ("file.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),
+ ("wm.context_toggle", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.params.show_hidden')]}),
+ ("file.directory_new", {"type": 'I', "value": 'PRESS'}, None),
+ ("file.delete", {"type": 'X', "value": 'PRESS'}, None),
+ ("file.delete", {"type": 'DEL', "value": 'PRESS'}, None),
+ ("file.smoothscroll", {"type": 'TIMER1', "value": 'ANY', "any": True}, None),
+ ("file.bookmark_toggle", {"type": 'T', "value": 'PRESS'}, None),
+ ("file.bookmark_add", {"type": 'B', "value": 'PRESS', "ctrl": True}, None),
+ ])
+
+ return keymap
+
+
+def km_file_browser_main(_params):
+ items = []
+ keymap = (
+ "File Browser Main",
+ {"space_type": 'FILE_BROWSER', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("file.execute", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'},
+ {"properties": [("need_active", True)]}),
+ ("file.refresh", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
+ ("file.select", {"type": 'LEFTMOUSE', "value": 'CLICK'}, None),
+ ("file.select", {"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True},
+ {"properties": [("extend", True)]}),
+ ("file.select", {"type": 'LEFTMOUSE', "value": 'CLICK', "shift": True, "ctrl": True},
+ {"properties": [("extend", True), ("fill", True)]}),
+ ("file.select", {"type": 'RIGHTMOUSE', "value": 'CLICK'},
+ {"properties": [("open", False)]}),
+ ("file.select", {"type": 'RIGHTMOUSE', "value": 'CLICK', "shift": True},
+ {"properties": [("extend", True), ("open", False)]}),
+ ("file.select", {"type": 'RIGHTMOUSE', "value": 'CLICK', "alt": True},
+ {"properties": [("extend", True), ("fill", True), ("open", False)]}),
+ ("file.select_walk", {"type": 'UP_ARROW', "value": 'PRESS'},
+ {"properties": [("direction", 'UP')]}),
+ ("file.select_walk", {"type": 'UP_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("direction", 'UP'), ("extend", True)]}),
+ ("file.select_walk", {"type": 'UP_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("direction", 'UP'), ("extend", True), ("fill", True)]}),
+ ("file.select_walk", {"type": 'DOWN_ARROW', "value": 'PRESS'},
+ {"properties": [("direction", 'DOWN')]}),
+ ("file.select_walk", {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("direction", 'DOWN'), ("extend", True)]}),
+ ("file.select_walk", {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("direction", 'DOWN'), ("extend", True), ("fill", True)]}),
+ ("file.select_walk", {"type": 'LEFT_ARROW', "value": 'PRESS'},
+ {"properties": [("direction", 'LEFT')]}),
+ ("file.select_walk", {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("direction", 'LEFT'), ("extend", True)]}),
+ ("file.select_walk", {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("direction", 'LEFT'), ("extend", True), ("fill", True)]}),
+ ("file.select_walk", {"type": 'RIGHT_ARROW', "value": 'PRESS'},
+ {"properties": [("direction", 'RIGHT')]}),
+ ("file.select_walk", {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("direction", 'RIGHT'), ("extend", True)]}),
+ ("file.select_walk", {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("direction", 'RIGHT'), ("extend", True), ("fill", True)]}),
+ ("file.previous", {"type": 'BUTTON4MOUSE', "value": 'CLICK'}, None),
+ ("file.next", {"type": 'BUTTON5MOUSE', "value": 'CLICK'}, None),
+ ("file.select_all", {"type": 'A', "value": 'PRESS'}, None),
+ ("file.select_box", {"type": 'B', "value": 'PRESS'}, None),
+ ("file.select_box", {"type": 'EVT_TWEAK_L', "value": 'ANY'}, None),
+ ("file.rename", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, None),
+ ("file.highlight", {"type": 'MOUSEMOVE', "value": 'ANY', "any": True}, None),
+ ("file.filenum", {"type": 'NUMPAD_PLUS', "value": 'PRESS'},
+ {"properties": [("increment", 1)]}),
+ ("file.filenum", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "shift": True},
+ {"properties": [("increment", 10)]}),
+ ("file.filenum", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True},
+ {"properties": [("increment", 100)]}),
+ ("file.filenum", {"type": 'NUMPAD_MINUS', "value": 'PRESS'},
+ {"properties": [("increment", -1)]}),
+ ("file.filenum", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "shift": True},
+ {"properties": [("increment", -10)]}),
+ ("file.filenum", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True},
+ {"properties": [("increment", -100)]}),
+ ])
+
+ return keymap
+
+
+def km_file_browser_buttons(_params):
+ items = []
+ keymap = (
+ "File Browser Buttons",
+ {"space_type": 'FILE_BROWSER', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("file.filenum", {"type": 'NUMPAD_PLUS', "value": 'PRESS'},
+ {"properties": [("increment", 1)]}),
+ ("file.filenum", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "shift": True},
+ {"properties": [("increment", 10)]}),
+ ("file.filenum", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True},
+ {"properties": [("increment", 100)]}),
+ ("file.filenum", {"type": 'NUMPAD_MINUS', "value": 'PRESS'},
+ {"properties": [("increment", -1)]}),
+ ("file.filenum", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "shift": True},
+ {"properties": [("increment", -10)]}),
+ ("file.filenum", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True},
+ {"properties": [("increment", -100)]}),
+ ])
+
+ return keymap
+
+
+def km_dopesheet_generic(_params):
+ items = []
+ keymap = (
+ "Dopesheet Generic",
+ {"space_type": 'DOPESHEET_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("action.properties", {"type": 'N', "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+def km_dopesheet(params):
+ items = []
+ keymap = (
+ "Dopesheet",
+ {"space_type": 'DOPESHEET_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("action.clickselect", {"type": params.select_mouse, "value": 'PRESS'},
+ {"properties": [("extend", False), ("column", False), ("channel", False)]}),
+ ("action.clickselect", {"type": params.select_mouse, "value": 'PRESS', "alt": True},
+ {"properties": [("extend", False), ("column", True), ("channel", False)]}),
+ ("action.clickselect", {"type": params.select_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True), ("column", False), ("channel", False)]}),
+ ("action.clickselect", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("extend", True), ("column", True), ("channel", False)]}),
+ ("action.clickselect", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("extend", False), ("column", False), ("channel", True)]}),
+ ("action.clickselect", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
+ {"properties": [("extend", True), ("column", False), ("channel", True)]}),
+ ("action.select_leftright", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'CHECK'), ("extend", False)]}),
+ ("action.select_leftright", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("mode", 'CHECK'), ("extend", True)]}),
+ ("action.select_leftright", {"type": 'LEFT_BRACKET', "value": 'PRESS'},
+ {"properties": [("mode", 'LEFT'), ("extend", False)]}),
+ ("action.select_leftright", {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
+ {"properties": [("mode", 'RIGHT'), ("extend", False)]}),
+ *_template_items_select_actions("action.select_all"),
+ ("action.select_box", {"type": 'B', "value": 'PRESS'},
+ {"properties": [("axis_range", False)]}),
+ ("action.select_box", {"type": 'B', "value": 'PRESS', "alt": True},
+ {"properties": [("axis_range", True)]}),
+ ("action.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True},
+ {"properties": [("deselect", False)]}),
+ ("action.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True},
+ {"properties": [("deselect", True)]}),
+ ("action.select_circle", {"type": 'C', "value": 'PRESS'}, None),
+ ("action.select_column", {"type": 'K', "value": 'PRESS'},
+ {"properties": [("mode", 'KEYS')]}),
+ ("action.select_column", {"type": 'K', "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'CFRA')]}),
+ ("action.select_column", {"type": 'K', "value": 'PRESS', "shift": True},
+ {"properties": [("mode", 'MARKERS_COLUMN')]}),
+ ("action.select_column", {"type": 'K', "value": 'PRESS', "alt": True},
+ {"properties": [("mode", 'MARKERS_BETWEEN')]}),
+ ("action.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
+ ("action.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
+ ("action.select_linked", {"type": 'L', "value": 'PRESS'}, None),
+ ("action.frame_jump", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
+ op_menu_pie("DOPESHEET_MT_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True}),
+ ("action.mirror", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
+ ("action.handle_type", {"type": 'V', "value": 'PRESS'}, None),
+ ("action.interpolation_type", {"type": 'T', "value": 'PRESS'}, None),
+ ("action.extrapolation_type", {"type": 'E', "value": 'PRESS', "shift": True}, None),
+ ("action.keyframe_type", {"type": 'R', "value": 'PRESS'}, None),
+ op_menu("DOPESHEET_MT_specials", {"type": 'W', "value": 'PRESS'}),
+ ("action.sample", {"type": 'O', "value": 'PRESS', "shift": True, "alt": True}, None),
+ op_menu("DOPESHEET_MT_delete", {"type": 'X', "value": 'PRESS'}),
+ op_menu("DOPESHEET_MT_delete", {"type": 'DEL', "value": 'PRESS'}),
+ ("action.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
+ ("action.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None),
+ ("action.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
+ ("action.paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
+ ("action.paste", {"type": 'V', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("flipped", True)]}),
+ ("action.previewrange_set", {"type": 'P', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("action.view_all", {"type": 'HOME', "value": 'PRESS'}, None),
+ ("action.view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
+ ("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),
+ ("transform.transform", {"type": 'G', "value": 'PRESS'},
+ {"properties": [("mode", 'TIME_TRANSLATE')]}),
+ ("transform.transform", {"type": 'EVT_TWEAK_S', "value": 'ANY'},
+ {"properties": [("mode", 'TIME_TRANSLATE')]}),
+ ("transform.transform", {"type": 'E', "value": 'PRESS'},
+ {"properties": [("mode", 'TIME_EXTEND')]}),
+ ("transform.transform", {"type": 'S', "value": 'PRESS'},
+ {"properties": [("mode", 'TIME_SCALE')]}),
+ ("transform.transform", {"type": 'T', "value": 'PRESS', "shift": True},
+ {"properties": [("mode", 'TIME_SLIDE')]}),
+ ("wm.context_toggle", {"type": 'O', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.use_proportional_action')]}),
+ op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
+ ("marker.add", {"type": 'M', "value": 'PRESS'}, None),
+ ("marker.rename", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
+ ])
+
+ if params.apple:
+ items.extend([
+ ("action.copy", {"type": 'C', "value": 'PRESS', "oskey": True}, None),
+ ("action.paste", {"type": 'V', "value": 'PRESS', "oskey": True}, None),
+ ("action.paste", {"type": 'V', "value": 'PRESS', "shift": True, "oskey": True},
+ {"properties": [("flipped", True)]}),
+ ])
+
+ return keymap
+
+
+def km_nla_generic(_params):
+ items = []
+ keymap = (
+ "NLA Generic",
+ {"space_type": 'NLA_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("nla.properties", {"type": 'N', "value": 'PRESS'}, None),
+ ("nla.tweakmode_enter", {"type": 'TAB', "value": 'PRESS'}, None),
+ ("nla.tweakmode_exit", {"type": 'TAB', "value": 'PRESS'}, None),
+ ("nla.tweakmode_enter", {"type": 'TAB', "value": 'PRESS', "shift": True},
+ {"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),
+ ])
+
+ return keymap
+
+
+def km_nla_channels(_params):
+ items = []
+ keymap = (
+ "NLA Channels",
+ {"space_type": 'NLA_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("nla.channels_click", {"type": 'LEFTMOUSE', "value": 'PRESS'},
+ {"properties": [("extend", False)]}),
+ ("nla.channels_click", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True)]}),
+ ("nla.tracks_add", {"type": 'A', "value": 'PRESS', "shift": True},
+ {"properties": [("above_selected", False)]}),
+ ("nla.tracks_add", {"type": 'A', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("above_selected", True)]}),
+ ("nla.tracks_delete", {"type": 'X', "value": 'PRESS'}, None),
+ ("nla.tracks_delete", {"type": 'DEL', "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+def km_nla_editor(params):
+ items = []
+ keymap = (
+ "NLA Editor",
+ {"space_type": 'NLA_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("nla.click_select", {"type": params.select_mouse, "value": 'PRESS'},
+ {"properties": [("extend", False)]}),
+ ("nla.click_select", {"type": params.select_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True)]}),
+ ("nla.select_leftright", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'CHECK'), ("extend", False)]}),
+ ("nla.select_leftright", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("mode", 'CHECK'), ("extend", True)]}),
+ ("nla.select_leftright", {"type": 'LEFT_BRACKET', "value": 'PRESS'},
+ {"properties": [("mode", 'LEFT'), ("extend", False)]}),
+ ("nla.select_leftright", {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
+ {"properties": [("mode", 'RIGHT'), ("extend", False)]}),
+ *_template_items_select_actions("nla.select_all"),
+ ("nla.select_box", {"type": 'B', "value": 'PRESS'},
+ {"properties": [("axis_range", False)]}),
+ ("nla.select_box", {"type": 'B', "value": 'PRESS', "alt": True},
+ {"properties": [("axis_range", True)]}),
+ ("nla.previewrange_set", {"type": 'P', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("nla.view_all", {"type": 'HOME', "value": 'PRESS'}, None),
+ ("nla.view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
+ ("nla.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
+ ("nla.view_frame", {"type": 'NUMPAD_0', "value": 'PRESS'}, None),
+ ("nla.actionclip_add", {"type": 'A', "value": 'PRESS', "shift": True}, None),
+ ("nla.transition_add", {"type": 'T', "value": 'PRESS', "shift": True}, None),
+ ("nla.soundclip_add", {"type": 'K', "value": 'PRESS', "shift": True}, None),
+ ("nla.meta_add", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
+ ("nla.meta_remove", {"type": 'G', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("nla.duplicate", {"type": 'D', "value": 'PRESS', "shift": True},
+ {"properties": [("linked", False)]}),
+ ("nla.duplicate", {"type": 'D', "value": 'PRESS', "alt": True},
+ {"properties": [("linked", True)]}),
+ ("nla.make_single_user", {"type": 'U', "value": 'PRESS'}, None),
+ ("nla.delete", {"type": 'X', "value": 'PRESS'}, None),
+ ("nla.delete", {"type": 'DEL', "value": 'PRESS'}, None),
+ ("nla.split", {"type": 'Y', "value": 'PRESS'}, None),
+ ("nla.mute_toggle", {"type": 'H', "value": 'PRESS'}, None),
+ ("nla.swap", {"type": 'F', "value": 'PRESS', "alt": True}, None),
+ ("nla.move_up", {"type": 'PAGE_UP', "value": 'PRESS'}, None),
+ ("nla.move_down", {"type": 'PAGE_DOWN', "value": 'PRESS'}, None),
+ ("nla.apply_scale", {"type": 'A', "value": 'PRESS', "ctrl": True}, None),
+ ("nla.clear_scale", {"type": 'S', "value": 'PRESS', "alt": True}, None),
+ op_menu_pie("NLA_MT_snap_pie", {"type": 'S', "value": 'PRESS', "shift": True}),
+ ("nla.fmodifier_add", {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("transform.transform", {"type": 'G', "value": 'PRESS'},
+ {"properties": [("mode", 'TRANSLATION')]}),
+ ("transform.transform", {"type": 'EVT_TWEAK_S', "value": 'ANY'},
+ {"properties": [("mode", 'TRANSLATION')]}),
+ ("transform.transform", {"type": 'E', "value": 'PRESS'},
+ {"properties": [("mode", 'TIME_EXTEND')]}),
+ ("transform.transform", {"type": 'S', "value": 'PRESS'},
+ {"properties": [("mode", 'TIME_SCALE')]}),
+ ("marker.add", {"type": 'M', "value": 'PRESS'}, None),
+ ("marker.rename", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
+ ])
+
+ return keymap
+
+
+def km_text_generic(params):
+ items = []
+ keymap = (
+ "Text Generic",
+ {"space_type": 'TEXT_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("text.start_find", {"type": 'F', "value": 'PRESS', "ctrl": True}, None),
+ ("text.jump", {"type": 'J', "value": 'PRESS', "ctrl": True}, None),
+ ("text.find", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
+ ("text.replace", {"type": 'H', "value": 'PRESS', "ctrl": True}, None),
+ ("text.properties", {"type": 'T', "value": 'PRESS', "ctrl": True}, None),
+ ])
+
+ if params.apple:
+ items.extend([
+ ("text.start_find", {"type": 'F', "value": 'PRESS', "oskey": True}, None),
+ ])
+
+ return keymap
+
+
+def km_text(params):
+ items = []
+ keymap = (
+ "Text",
+ {"space_type": 'TEXT_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ if params.apple:
+ items.extend([
+ ("text.move", {"type": 'LEFT_ARROW', "value": 'PRESS', "oskey": True},
+ {"properties": [("type", 'LINE_BEGIN')]}),
+ ("text.move", {"type": 'RIGHT_ARROW', "value": 'PRESS', "oskey": True},
+ {"properties": [("type", 'LINE_END')]}),
+ ("text.move", {"type": 'UP_ARROW', "value": 'PRESS', "oskey": True},
+ {"properties": [("type", 'FILE_TOP')]}),
+ ("text.move", {"type": 'DOWN_ARROW', "value": 'PRESS', "oskey": True},
+ {"properties": [("type", 'FILE_BOTTOM')]}),
+ ("text.move_select", {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True, "oskey": True},
+ {"properties": [("type", 'LINE_BEGIN')]}),
+ ("text.move_select", {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True, "oskey": True},
+ {"properties": [("type", 'LINE_END')]}),
+ ("text.move_select", {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("type", 'PREVIOUS_WORD')]}),
+ ("text.move_select", {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("type", 'NEXT_WORD')]}),
+ ("text.move_select", {"type": 'UP_ARROW', "value": 'PRESS', "shift": True, "oskey": True},
+ {"properties": [("type", 'FILE_TOP')]}),
+ ("text.move_select", {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True, "oskey": True},
+ {"properties": [("type", 'FILE_BOTTOM')]}),
+ ("text.delete", {"type": 'BACK_SPACE', "value": 'PRESS', "alt": True},
+ {"properties": [("type", 'PREVIOUS_WORD')]}),
+ ("text.save", {"type": 'S', "value": 'PRESS', "alt": True, "oskey": True}, None),
+ ("text.save_as", {"type": 'S', "value": 'PRESS', "shift": True, "alt": True, "oskey": True}, None),
+ ("text.cut", {"type": 'X', "value": 'PRESS', "oskey": True}, None),
+ ("text.copy", {"type": 'C', "value": 'PRESS', "oskey": True}, None),
+ ("text.paste", {"type": 'V', "value": 'PRESS', "oskey": True}, None),
+ ("text.find_set_selected", {"type": 'E', "value": 'PRESS', "oskey": True}, None),
+ ("text.select_all", {"type": 'A', "value": 'PRESS', "oskey": True}, None),
+ ("text.select_line", {"type": 'A', "value": 'PRESS', "shift": True, "oskey": True}, None),
+ ])
+
+ items.extend([
+ ("text.move", {"type": 'LEFT_ARROW', "value": 'PRESS', "alt": True},
+ {"properties": [("type", 'PREVIOUS_WORD')]}),
+ ("text.move", {"type": 'RIGHT_ARROW', "value": 'PRESS', "alt": True},
+ {"properties": [("type", 'NEXT_WORD')]}),
+ ("wm.context_cycle_int", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.font_size'), ("reverse", False)]}),
+ ("wm.context_cycle_int", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.font_size'), ("reverse", True)]}),
+ ("wm.context_cycle_int", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.font_size'), ("reverse", False)]}),
+ ("wm.context_cycle_int", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.font_size'), ("reverse", True)]}),
+ ])
+
+ if not params.legacy:
+ items.extend([
+ ("text.new", {"type": 'N', "value": 'PRESS', "alt": True}, None),
+ ])
+ else:
+ items.extend([
+ ("text.new", {"type": 'N', "value": 'PRESS', "ctrl": True}, None),
+ ])
+
+ items.extend([
+ ("text.open", {"type": 'O', "value": 'PRESS', "alt": True}, None),
+ ("text.reload", {"type": 'R', "value": 'PRESS', "alt": True}, None),
+ ("text.save", {"type": 'S', "value": 'PRESS', "alt": True}, None),
+ ("text.save_as", {"type": 'S', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
+ ("text.run_script", {"type": 'P', "value": 'PRESS', "alt": True}, None),
+ ("text.cut", {"type": 'X', "value": 'PRESS', "ctrl": True}, None),
+ ("text.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
+ ("text.paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
+ ("text.cut", {"type": 'DEL', "value": 'PRESS', "shift": True}, None),
+ ("text.copy", {"type": 'INSERT', "value": 'PRESS', "ctrl": True}, None),
+ ("text.paste", {"type": 'INSERT', "value": 'PRESS', "shift": True}, None),
+ ("text.duplicate_line", {"type": 'D', "value": 'PRESS', "ctrl": True}, None),
+ ("text.select_all", {"type": 'A', "value": 'PRESS', "ctrl": True}, None),
+ ("text.select_line", {"type": 'A', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("text.select_word", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'}, None),
+ ("text.move_lines", {"type": 'UP_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("direction", 'UP')]}),
+ ("text.move_lines", {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("direction", 'DOWN')]}),
+ ("text.indent", {"type": 'TAB', "value": 'PRESS'}, None),
+ ("text.unindent", {"type": 'TAB', "value": 'PRESS', "shift": True}, None),
+ ("text.uncomment", {"type": 'D', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("text.move", {"type": 'HOME', "value": 'PRESS'},
+ {"properties": [("type", 'LINE_BEGIN')]}),
+ ("text.move", {"type": 'END', "value": 'PRESS'},
+ {"properties": [("type", 'LINE_END')]}),
+ ("text.move", {"type": 'E', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'LINE_END')]}),
+ ("text.move", {"type": 'E', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("type", 'LINE_END')]}),
+ ("text.move", {"type": 'LEFT_ARROW', "value": 'PRESS'},
+ {"properties": [("type", 'PREVIOUS_CHARACTER')]}),
+ ("text.move", {"type": 'RIGHT_ARROW', "value": 'PRESS'},
+ {"properties": [("type", 'NEXT_CHARACTER')]}),
+ ("text.move", {"type": 'LEFT_ARROW', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'PREVIOUS_WORD')]}),
+ ("text.move", {"type": 'RIGHT_ARROW', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'NEXT_WORD')]}),
+ ("text.move", {"type": 'UP_ARROW', "value": 'PRESS'},
+ {"properties": [("type", 'PREVIOUS_LINE')]}),
+ ("text.move", {"type": 'DOWN_ARROW', "value": 'PRESS'},
+ {"properties": [("type", 'NEXT_LINE')]}),
+ ("text.move", {"type": 'PAGE_UP', "value": 'PRESS'},
+ {"properties": [("type", 'PREVIOUS_PAGE')]}),
+ ("text.move", {"type": 'PAGE_DOWN', "value": 'PRESS'},
+ {"properties": [("type", 'NEXT_PAGE')]}),
+ ("text.move", {"type": 'HOME', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'FILE_TOP')]}),
+ ("text.move", {"type": 'END', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'FILE_BOTTOM')]}),
+ ("text.move_select", {"type": 'HOME', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'LINE_BEGIN')]}),
+ ("text.move_select", {"type": 'END', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'LINE_END')]}),
+ ("text.move_select", {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'PREVIOUS_CHARACTER')]}),
+ ("text.move_select", {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'NEXT_CHARACTER')]}),
+ ("text.move_select", {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("type", 'PREVIOUS_WORD')]}),
+ ("text.move_select", {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("type", 'NEXT_WORD')]}),
+ ("text.move_select", {"type": 'UP_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'PREVIOUS_LINE')]}),
+ ("text.move_select", {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'NEXT_LINE')]}),
+ ("text.move_select", {"type": 'PAGE_UP', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'PREVIOUS_PAGE')]}),
+ ("text.move_select", {"type": 'PAGE_DOWN', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'NEXT_PAGE')]}),
+ ("text.move_select", {"type": 'HOME', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("type", 'FILE_TOP')]}),
+ ("text.move_select", {"type": 'END', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("type", 'FILE_BOTTOM')]}),
+ ("text.delete", {"type": 'DEL', "value": 'PRESS'},
+ {"properties": [("type", 'NEXT_CHARACTER')]}),
+ ("text.delete", {"type": 'BACK_SPACE', "value": 'PRESS'},
+ {"properties": [("type", 'PREVIOUS_CHARACTER')]}),
+ ("text.delete", {"type": 'BACK_SPACE', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'PREVIOUS_CHARACTER')]}),
+ ("text.delete", {"type": 'DEL', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'NEXT_WORD')]}),
+ ("text.delete", {"type": 'BACK_SPACE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'PREVIOUS_WORD')]}),
+ ("text.overwrite_toggle", {"type": 'INSERT', "value": 'PRESS'}, None),
+ ("text.scroll_bar", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("text.scroll_bar", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
+ ("text.scroll", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
+ ("text.scroll", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
+ ("text.selection_set", {"type": 'EVT_TWEAK_L', "value": 'ANY'}, None),
+ ("text.cursor_set", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("text.selection_set", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("select", True)]}),
+ ("text.scroll", {"type": 'WHEELUPMOUSE', "value": 'PRESS'},
+ {"properties": [("lines", -1)]}),
+ ("text.scroll", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS'},
+ {"properties": [("lines", 1)]}),
+ ("text.line_break", {"type": 'RET', "value": 'PRESS'}, None),
+ ("text.line_break", {"type": 'NUMPAD_ENTER', "value": 'PRESS'}, None),
+ op_menu("TEXT_MT_toolbox", {"type": 'RIGHTMOUSE', "value": 'PRESS', "any": True}),
+ ("text.autocomplete", {"type": 'SPACE', "value": 'PRESS', "ctrl": True}, None),
+ ("text.line_number", {"type": 'TEXTINPUT', "value": 'ANY', "any": True}, None),
+ ("text.insert", {"type": 'TEXTINPUT', "value": 'ANY', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_sequencercommon(_params):
+ items = []
+ keymap = (
+ "SequencerCommon",
+ {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("sequencer.properties", {"type": 'N', "value": 'PRESS'}, None),
+ ("wm.context_toggle", {"type": 'O', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'scene.sequence_editor.show_overlay')]}),
+ ("sequencer.view_toggle", {"type": 'TAB', "value": 'PRESS', "ctrl": True}, None),
+ ])
+
+ return keymap
+
+
+def km_sequencer(params):
+ items = []
+ keymap = (
+ "Sequencer",
+ {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ *_template_items_select_actions("sequencer.select_all"),
+ ("sequencer.cut", {"type": 'K', "value": 'PRESS'},
+ {"properties": [("type", 'SOFT')]}),
+ ("sequencer.cut", {"type": 'K', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'HARD')]}),
+ ("sequencer.mute", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("sequencer.mute", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ("sequencer.unmute", {"type": 'H', "value": 'PRESS', "alt": True},
+ {"properties": [("unselected", False)]}),
+ ("sequencer.unmute", {"type": 'H', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("unselected", True)]}),
+ ("sequencer.lock", {"type": 'L', "value": 'PRESS', "shift": True}, None),
+ ("sequencer.unlock", {"type": 'L', "value": 'PRESS', "shift": True, "alt": True}, None),
+ ("sequencer.reassign_inputs", {"type": 'R', "value": 'PRESS'}, None),
+ ("sequencer.reload", {"type": 'R', "value": 'PRESS', "alt": True}, None),
+ ("sequencer.reload", {"type": 'R', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("adjust_length", True)]}),
+ ("sequencer.offset_clear", {"type": 'O', "value": 'PRESS', "alt": True}, None),
+ ("sequencer.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
+ ("sequencer.delete", {"type": 'X', "value": 'PRESS'}, None),
+ ("sequencer.delete", {"type": 'DEL', "value": 'PRESS'}, None),
+ ("sequencer.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
+ ("sequencer.paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
+ ("sequencer.images_separate", {"type": 'Y', "value": 'PRESS'}, None),
+ ("sequencer.meta_toggle", {"type": 'TAB', "value": 'PRESS'}, None),
+ ("sequencer.meta_make", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
+ ("sequencer.meta_separate", {"type": 'G', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("sequencer.view_all", {"type": 'HOME', "value": 'PRESS'}, None),
+ ("sequencer.view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
+ ("sequencer.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
+ ("sequencer.view_frame", {"type": 'NUMPAD_0', "value": 'PRESS'}, None),
+ ("sequencer.strip_jump", {"type": 'PAGE_UP', "value": 'PRESS'},
+ {"properties": [("next", True), ("center", False)]}),
+ ("sequencer.strip_jump", {"type": 'PAGE_DOWN', "value": 'PRESS'},
+ {"properties": [("next", False), ("center", False)]}),
+ ("sequencer.strip_jump", {"type": 'PAGE_UP', "value": 'PRESS', "alt": True},
+ {"properties": [("next", True), ("center", True)]}),
+ ("sequencer.strip_jump", {"type": 'PAGE_DOWN', "value": 'PRESS', "alt": True},
+ {"properties": [("next", False), ("center", True)]}),
+ ("sequencer.swap", {"type": 'LEFT_ARROW', "value": 'PRESS', "alt": True},
+ {"properties": [("side", 'LEFT')]}),
+ ("sequencer.swap", {"type": 'RIGHT_ARROW', "value": 'PRESS', "alt": True},
+ {"properties": [("side", 'RIGHT')]}),
+ ("sequencer.gap_remove", {"type": 'BACK_SPACE', "value": 'PRESS'},
+ {"properties": [("all", False)]}),
+ ("sequencer.gap_remove", {"type": 'BACK_SPACE', "value": 'PRESS', "shift": True},
+ {"properties": [("all", True)]}),
+ ("sequencer.gap_insert", {"type": 'EQUAL', "value": 'PRESS', "shift": True}, None),
+ ("sequencer.snap", {"type": 'S', "value": 'PRESS', "shift": True}, None),
+ ("sequencer.swap_inputs", {"type": 'S', "value": 'PRESS', "alt": True}, None),
+ # TODO: expand into loop.
+ ("sequencer.cut_multicam", {"type": 'ONE', "value": 'PRESS'},
+ {"properties": [("camera", 1)]}),
+ ("sequencer.cut_multicam", {"type": 'TWO', "value": 'PRESS'},
+ {"properties": [("camera", 2)]}),
+ ("sequencer.cut_multicam", {"type": 'THREE', "value": 'PRESS'},
+ {"properties": [("camera", 3)]}),
+ ("sequencer.cut_multicam", {"type": 'FOUR', "value": 'PRESS'},
+ {"properties": [("camera", 4)]}),
+ ("sequencer.cut_multicam", {"type": 'FIVE', "value": 'PRESS'},
+ {"properties": [("camera", 5)]}),
+ ("sequencer.cut_multicam", {"type": 'SIX', "value": 'PRESS'},
+ {"properties": [("camera", 6)]}),
+ ("sequencer.cut_multicam", {"type": 'SEVEN', "value": 'PRESS'},
+ {"properties": [("camera", 7)]}),
+ ("sequencer.cut_multicam", {"type": 'EIGHT', "value": 'PRESS'},
+ {"properties": [("camera", 8)]}),
+ ("sequencer.cut_multicam", {"type": 'NINE', "value": 'PRESS'},
+ {"properties": [("camera", 9)]}),
+ ("sequencer.cut_multicam", {"type": 'ZERO', "value": 'PRESS'},
+ {"properties": [("camera", 10)]}),
+ ("sequencer.select", {"type": params.select_mouse, "value": 'PRESS'},
+ {"properties": [("extend", False), ("linked_handle", False), ("left_right", 'NONE'), ("linked_time", False)]}),
+ ("sequencer.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True), ("linked_handle", False), ("left_right", 'NONE'), ("linked_time", False)]}),
+ ("sequencer.select", {"type": params.select_mouse, "value": 'PRESS', "alt": True},
+ {"properties": [("extend", False), ("linked_handle", True), ("left_right", 'NONE'), ("linked_time", False)]}),
+ ("sequencer.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("extend", True), ("linked_handle", True), ("left_right", 'NONE'), ("linked_time", False)]}),
+ ("sequencer.select", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True},
+ {"properties": [("extend", False), ("linked_handle", False), ("left_right", 'MOUSE'), ("linked_time", True)]}),
+ ("sequencer.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("extend", True), ("linked_handle", False), ("left_right", 'NONE'), ("linked_time", True)]}),
+ ("sequencer.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
+ ("sequencer.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
+ ("sequencer.select_linked_pick", {"type": 'L', "value": 'PRESS'},
+ {"properties": [("extend", False)]}),
+ ("sequencer.select_linked_pick", {"type": 'L', "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True)]}),
+ ("sequencer.select_linked", {"type": 'L', "value": 'PRESS', "ctrl": True}, None),
+ ("sequencer.select_box", {"type": 'B', "value": 'PRESS'}, None),
+ ("sequencer.select_grouped", {"type": 'G', "value": 'PRESS', "shift": True}, None),
+ op_menu("SEQUENCER_MT_add", {"type": 'A', "value": 'PRESS', "shift": True}),
+ op_menu("SEQUENCER_MT_change", {"type": 'C', "value": 'PRESS'}),
+ ("sequencer.slip", {"type": 'S', "value": 'PRESS'}, None),
+ ("wm.context_set_int", {"type": 'O', "value": 'PRESS'},
+ {"properties": [("data_path", 'scene.sequence_editor.overlay_frame'), ("value", 0)]}),
+ ("transform.seq_slide", {"type": 'G', "value": 'PRESS'}, None),
+ ("transform.seq_slide", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
+ ("transform.transform", {"type": 'E', "value": 'PRESS'},
+ {"properties": [("mode", 'TIME_EXTEND')]}),
+ ("marker.add", {"type": 'M', "value": 'PRESS'}, None),
+ ("marker.rename", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
+ ])
+
+ if params.apple:
+ items.extend([
+ ("sequencer.copy", {"type": 'C', "value": 'PRESS', "oskey": True}, None),
+ ("sequencer.paste", {"type": 'V', "value": 'PRESS', "oskey": True}, None),
+ ])
+
+ return keymap
+
+
+def km_sequencerpreview(params):
+ items = []
+ keymap = (
+ "SequencerPreview",
+ {"space_type": 'SEQUENCE_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("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),
+ ("sequencer.view_zoom_ratio", {"type": 'NUMPAD_1', "value": 'PRESS'},
+ {"properties": [("ratio", 1.0)]}),
+ ("sequencer.sample", {"type": params.action_mouse, "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+def km_console(params):
+ items = []
+ keymap = (
+ "Console",
+ {"space_type": 'CONSOLE', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ if params.apple:
+ items.extend([
+ ("console.move", {"type": 'LEFT_ARROW', "value": 'PRESS', "oskey": True},
+ {"properties": [("type", 'LINE_BEGIN')]}),
+ ("console.move", {"type": 'RIGHT_ARROW', "value": 'PRESS', "oskey": True},
+ {"properties": [("type", 'LINE_END')]}),
+ ("console.copy", {"type": 'C', "value": 'PRESS', "oskey": True}, None),
+ ("console.paste", {"type": 'V', "value": 'PRESS', "oskey": True}, None),
+ ])
+
+ items.extend([
+ ("console.move", {"type": 'LEFT_ARROW', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'PREVIOUS_WORD')]}),
+ ("console.move", {"type": 'RIGHT_ARROW', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'NEXT_WORD')]}),
+ ("console.move", {"type": 'HOME', "value": 'PRESS'},
+ {"properties": [("type", 'LINE_BEGIN')]}),
+ ("console.move", {"type": 'END', "value": 'PRESS'},
+ {"properties": [("type", 'LINE_END')]}),
+ ("wm.context_cycle_int", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.font_size'), ("reverse", False)]}),
+ ("wm.context_cycle_int", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.font_size'), ("reverse", True)]}),
+ ("wm.context_cycle_int", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.font_size'), ("reverse", False)]}),
+ ("wm.context_cycle_int", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.font_size'), ("reverse", True)]}),
+ ("console.move", {"type": 'LEFT_ARROW', "value": 'PRESS'},
+ {"properties": [("type", 'PREVIOUS_CHARACTER')]}),
+ ("console.move", {"type": 'RIGHT_ARROW', "value": 'PRESS'},
+ {"properties": [("type", 'NEXT_CHARACTER')]}),
+ ("console.history_cycle", {"type": 'UP_ARROW', "value": 'PRESS'},
+ {"properties": [("reverse", True)]}),
+ ("console.history_cycle", {"type": 'DOWN_ARROW', "value": 'PRESS'},
+ {"properties": [("reverse", False)]}),
+ ("console.delete", {"type": 'DEL', "value": 'PRESS'},
+ {"properties": [("type", 'NEXT_CHARACTER')]}),
+ ("console.delete", {"type": 'BACK_SPACE', "value": 'PRESS'},
+ {"properties": [("type", 'PREVIOUS_CHARACTER')]}),
+ ("console.delete", {"type": 'BACK_SPACE', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'PREVIOUS_CHARACTER')]}),
+ ("console.delete", {"type": 'DEL', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'NEXT_WORD')]}),
+ ("console.delete", {"type": 'BACK_SPACE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'PREVIOUS_WORD')]}),
+ ("console.clear_line", {"type": 'RET', "value": 'PRESS', "shift": True}, None),
+ ("console.clear_line", {"type": 'NUMPAD_ENTER', "value": 'PRESS', "shift": True}, None),
+ ("console.execute", {"type": 'RET', "value": 'PRESS'},
+ {"properties": [("interactive", True)]}),
+ ("console.execute", {"type": 'NUMPAD_ENTER', "value": 'PRESS'},
+ {"properties": [("interactive", True)]}),
+ ("console.autocomplete", {"type": 'SPACE', "value": 'PRESS', "ctrl": True}, None),
+ ("console.copy_as_script", {"type": 'C', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("console.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
+ ("console.paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
+ ("console.select_set", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("console.select_word", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'}, None),
+ ("console.insert", {"type": 'TAB', "value": 'PRESS', "ctrl": True},
+ {"properties": [("text", '\t')]}),
+ ("console.indent", {"type": 'TAB', "value": 'PRESS'}, None),
+ ("console.unindent", {"type": 'TAB', "value": 'PRESS', "shift": True}, None),
+ ("console.insert", {"type": 'TEXTINPUT', "value": 'ANY', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_clip(_params):
+ items = []
+ keymap = (
+ "Clip",
+ {"space_type": 'CLIP_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("clip.open", {"type": 'O', "value": 'PRESS', "alt": True}, None),
+ ("clip.tools", {"type": 'T', "value": 'PRESS'}, None),
+ ("clip.properties", {"type": 'N', "value": 'PRESS'}, None),
+ ("clip.track_markers", {"type": 'LEFT_ARROW', "value": 'PRESS', "alt": True},
+ {"properties": [("backwards", True), ("sequence", False)]}),
+ ("clip.track_markers", {"type": 'RIGHT_ARROW', "value": 'PRESS', "alt": True},
+ {"properties": [("backwards", False), ("sequence", False)]}),
+ ("clip.track_markers", {"type": 'T', "value": 'PRESS', "ctrl": True},
+ {"properties": [("backwards", False), ("sequence", True)]}),
+ ("clip.track_markers", {"type": 'T', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("backwards", True), ("sequence", True)]}),
+ ("wm.context_toggle_enum", {"type": 'TAB', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.mode'), ("value_1", 'TRACKING'), ("value_2", 'MASK')]}),
+ ("clip.solve_camera", {"type": 'S', "value": 'PRESS', "shift": True}, None),
+ ("clip.set_solver_keyframe", {"type": 'Q', "value": 'PRESS'},
+ {"properties": [("keyframe", 'KEYFRAME_A')]}),
+ ("clip.set_solver_keyframe", {"type": 'E', "value": 'PRESS'},
+ {"properties": [("keyframe", 'KEYFRAME_B')]}),
+ ("clip.prefetch", {"type": 'P', "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+def km_clip_editor(params):
+ items = []
+ keymap = (
+ "Clip Editor",
+ {"space_type": 'CLIP_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("clip.view_pan", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
+ ("clip.view_pan", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "shift": True}, None),
+ ("clip.view_pan", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
+ ("clip.view_zoom", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "ctrl": True}, None),
+ ("clip.view_zoom", {"type": 'TRACKPADZOOM', "value": 'ANY'}, None),
+ ("clip.view_zoom", {"type": 'TRACKPADPAN', "value": 'ANY', "ctrl": True}, None),
+ ("clip.view_zoom_in", {"type": 'WHEELINMOUSE', "value": 'PRESS'}, None),
+ ("clip.view_zoom_out", {"type": 'WHEELOUTMOUSE', "value": 'PRESS'}, None),
+ ("clip.view_zoom_in", {"type": 'NUMPAD_PLUS', "value": 'PRESS'}, None),
+ ("clip.view_zoom_out", {"type": 'NUMPAD_MINUS', "value": 'PRESS'}, None),
+ ("clip.view_zoom_ratio", {"type": 'NUMPAD_8', "value": 'PRESS', "ctrl": True},
+ {"properties": [("ratio", 8.0)]}),
+ ("clip.view_zoom_ratio", {"type": 'NUMPAD_4', "value": 'PRESS', "ctrl": True},
+ {"properties": [("ratio", 4.0)]}),
+ ("clip.view_zoom_ratio", {"type": 'NUMPAD_2', "value": 'PRESS', "ctrl": True},
+ {"properties": [("ratio", 2.0)]}),
+ ("clip.view_zoom_ratio", {"type": 'NUMPAD_8', "value": 'PRESS', "shift": True},
+ {"properties": [("ratio", 8.0)]}),
+ ("clip.view_zoom_ratio", {"type": 'NUMPAD_4', "value": 'PRESS', "shift": True},
+ {"properties": [("ratio", 4.0)]}),
+ ("clip.view_zoom_ratio", {"type": 'NUMPAD_2', "value": 'PRESS', "shift": True},
+ {"properties": [("ratio", 2.0)]}),
+ ("clip.view_zoom_ratio", {"type": 'NUMPAD_1', "value": 'PRESS'},
+ {"properties": [("ratio", 1.0)]}),
+ ("clip.view_zoom_ratio", {"type": 'NUMPAD_2', "value": 'PRESS'},
+ {"properties": [("ratio", 0.5)]}),
+ ("clip.view_zoom_ratio", {"type": 'NUMPAD_4', "value": 'PRESS'},
+ {"properties": [("ratio", 0.25)]}),
+ ("clip.view_zoom_ratio", {"type": 'NUMPAD_8', "value": 'PRESS'},
+ {"properties": [("ratio", 0.125)]}),
+ ("clip.view_all", {"type": 'HOME', "value": 'PRESS'}, None),
+ ("clip.view_all", {"type": 'F', "value": 'PRESS'},
+ {"properties": [("fit_view", True)]}),
+ ("clip.view_selected", {"type": 'NUMPAD_PERIOD', "value": 'PRESS'}, None),
+ ("clip.view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
+ ("clip.view_ndof", {"type": 'NDOF_MOTION', "value": 'ANY'}, None),
+ ("clip.frame_jump", {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("position", 'PATHSTART')]}),
+ ("clip.frame_jump", {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("position", 'PATHEND')]}),
+ ("clip.frame_jump", {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("position", 'FAILEDPREV')]}),
+ ("clip.frame_jump", {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("position", 'PATHSTART')]}),
+ ("clip.change_frame", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("clip.select", {"type": params.select_mouse, "value": 'PRESS'},
+ {"properties": [("extend", False)]}),
+ ("clip.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True)]}),
+ *_template_items_select_actions("clip.select_all"),
+ ("clip.select_box", {"type": 'B', "value": 'PRESS'}, None),
+ ("clip.select_circle", {"type": 'C', "value": 'PRESS'}, None),
+ op_menu("CLIP_MT_select_grouped", {"type": 'G', "value": 'PRESS', "shift": True}),
+ ("clip.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True, "alt": True},
+ {"properties": [("deselect", False)]}),
+ ("clip.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True, "alt": True},
+ {"properties": [("deselect", True)]}),
+ ("clip.add_marker_slide", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, None),
+ ("clip.delete_marker", {"type": 'X', "value": 'PRESS', "shift": True}, None),
+ ("clip.delete_marker", {"type": 'DEL', "value": 'PRESS', "shift": True}, None),
+ ("clip.slide_marker", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("clip.disable_markers", {"type": 'D', "value": 'PRESS', "shift": True},
+ {"properties": [("action", 'TOGGLE')]}),
+ ("clip.delete_track", {"type": 'X', "value": 'PRESS'}, None),
+ ("clip.delete_track", {"type": 'DEL', "value": 'PRESS'}, None),
+ ("clip.lock_tracks", {"type": 'L', "value": 'PRESS', "ctrl": True},
+ {"properties": [("action", 'LOCK')]}),
+ ("clip.lock_tracks", {"type": 'L', "value": 'PRESS', "alt": True},
+ {"properties": [("action", 'UNLOCK')]}),
+ ("clip.hide_tracks", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("clip.hide_tracks", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ("clip.hide_tracks_clear", {"type": 'H', "value": 'PRESS', "alt": True}, None),
+ ("clip.slide_plane_marker", {"type": params.action_mouse, "value": 'PRESS'}, None),
+ ("clip.keyframe_insert", {"type": 'I', "value": 'PRESS'}, None),
+ ("clip.keyframe_delete", {"type": 'I', "value": 'PRESS', "alt": True}, None),
+ ("clip.join_tracks", {"type": 'J', "value": 'PRESS', "ctrl": True}, None),
+ op_menu("CLIP_MT_tracking_specials", {"type": 'W', "value": 'PRESS'}),
+ ("wm.context_toggle", {"type": 'L', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.lock_selection')]}),
+ ("wm.context_toggle", {"type": 'D', "value": 'PRESS', "alt": True},
+ {"properties": [("data_path", 'space_data.show_disabled')]}),
+ ("wm.context_toggle", {"type": 'S', "value": 'PRESS', "alt": True},
+ {"properties": [("data_path", 'space_data.show_marker_search')]}),
+ ("wm.context_toggle", {"type": 'M', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.use_mute_footage')]}),
+ ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
+ ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
+ ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
+ ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
+ ("clip.clear_track_path", {"type": 'T', "value": 'PRESS', "alt": True},
+ {"properties": [("action", 'REMAINED'), ("clear_active", False)]}),
+ ("clip.clear_track_path", {"type": 'T', "value": 'PRESS', "shift": True},
+ {"properties": [("action", 'UPTO'), ("clear_active", False)]}),
+ ("clip.clear_track_path", {"type": 'T', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("action", 'ALL'), ("clear_active", False)]}),
+ ("clip.cursor_set", {"type": params.action_mouse, "value": 'PRESS'}, None),
+ op_menu_pie("CLIP_MT_pivot_pie", {"type": 'PERIOD', "value": 'PRESS'}),
+ ("clip.copy_tracks", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
+ ("clip.paste_tracks", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
+ ])
+
+ return keymap
+
+
+def km_clip_graph_editor(params):
+ items = []
+ keymap = (
+ "Clip Graph Editor",
+ {"space_type": 'CLIP_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("clip.change_frame", {"type": params.action_mouse, "value": 'PRESS'}, None),
+ ("clip.graph_select", {"type": params.select_mouse, "value": 'PRESS'},
+ {"properties": [("extend", False)]}),
+ ("clip.graph_select", {"type": params.select_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True)]}),
+ *_template_items_select_actions("clip.graph_select_all_markers"),
+ ("clip.graph_select_box", {"type": 'B', "value": 'PRESS'}, None),
+ ("clip.graph_delete_curve", {"type": 'X', "value": 'PRESS'}, None),
+ ("clip.graph_delete_curve", {"type": 'DEL', "value": 'PRESS'}, None),
+ ("clip.graph_delete_knot", {"type": 'X', "value": 'PRESS', "shift": True}, None),
+ ("clip.graph_delete_knot", {"type": 'DEL', "value": 'PRESS', "shift": True}, None),
+ ("clip.graph_view_all", {"type": 'HOME', "value": 'PRESS'}, None),
+ ("clip.graph_view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
+ ("clip.graph_center_current_frame", {"type": 'NUMPAD_0', "value": 'PRESS'}, None),
+ ("wm.context_toggle", {"type": 'L', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.lock_time_cursor')]}),
+ ("clip.clear_track_path", {"type": 'T', "value": 'PRESS', "alt": True},
+ {"properties": [("action", 'REMAINED'), ("clear_active", True)]}),
+ ("clip.clear_track_path", {"type": 'T', "value": 'PRESS', "shift": True},
+ {"properties": [("action", 'UPTO'), ("clear_active", True)]}),
+ ("clip.clear_track_path", {"type": 'T', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("action", 'ALL'), ("clear_active", True)]}),
+ ("clip.graph_disable_markers", {"type": 'D', "value": 'PRESS', "shift": True},
+ {"properties": [("action", 'TOGGLE')]}),
+ ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
+ ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
+ ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
+ ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+def km_clip_dopesheet_editor(_params):
+ items = []
+ keymap = (
+ "Clip Dopesheet Editor",
+ {"space_type": 'CLIP_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("clip.dopesheet_select_channel", {"type": 'LEFTMOUSE', "value": 'PRESS'},
+ {"properties": [("extend", True)]}),
+ ("clip.dopesheet_view_all", {"type": 'HOME', "value": 'PRESS'}, None),
+ ("clip.dopesheet_view_all", {"type": 'NDOF_BUTTON_FIT', "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+# ------------------------------------------------------------------------------
+# Animation
+
+
+def km_frames(params):
+ items = []
+ keymap = (
+ "Frames",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Frame offsets
+ ("screen.frame_offset", {"type": 'LEFT_ARROW', "value": 'PRESS'},
+ {"properties": [("delta", -1)]}),
+ ("screen.frame_offset", {"type": 'RIGHT_ARROW', "value": 'PRESS'},
+ {"properties": [("delta", 1)]}),
+ ("screen.frame_jump", {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("end", True)]}),
+ ("screen.frame_jump", {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("end", False)]}),
+ ("screen.keyframe_jump", {"type": 'UP_ARROW', "value": 'PRESS'},
+ {"properties": [("next", True)]}),
+ ("screen.keyframe_jump", {"type": 'DOWN_ARROW', "value": 'PRESS'},
+ {"properties": [("next", False)]}),
+ ("screen.keyframe_jump", {"type": 'MEDIA_LAST', "value": 'PRESS'},
+ {"properties": [("next", True)]}),
+ ("screen.keyframe_jump", {"type": 'MEDIA_FIRST', "value": 'PRESS'},
+ {"properties": [("next", False)]}),
+ ])
+
+ if not params.legacy:
+ # New playback
+ items.extend([
+ ("screen.animation_play", {"type": 'SPACE', "value": 'PRESS', "shift": True}, None),
+ ("screen.animation_play", {"type": 'SPACE', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("reverse", True)]}),
+ ])
+ else:
+ # Old playback
+ items.extend([
+ ("screen.frame_offset", {"type": 'UP_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("delta", 10)]}),
+ ("screen.frame_offset", {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("delta", -10)]}),
+ ("screen.frame_offset", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "alt": True},
+ {"properties": [("delta", 1)]}),
+ ("screen.frame_offset", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "alt": True},
+ {"properties": [("delta", -1)]}),
+ ("screen.frame_jump", {"type": 'UP_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("end", True)]}),
+ ("screen.frame_jump", {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("end", False)]}),
+ ("screen.animation_play", {"type": 'A', "value": 'PRESS', "alt": True}, None),
+ ("screen.animation_play", {"type": 'A', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("reverse", True)]}),
+ ])
+
+ items.extend([
+ ("screen.animation_cancel", {"type": 'ESC', "value": 'PRESS'}, None),
+ ("screen.animation_play", {"type": 'MEDIA_PLAY', "value": 'PRESS'}, None),
+ ("screen.animation_cancel", {"type": 'MEDIA_STOP', "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+def km_animation(params):
+ items = []
+ keymap = (
+ "Animation",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Frame management.
+ ("anim.change_frame", {"type": params.action_mouse, "value": 'PRESS'}, None),
+ ("wm.context_toggle", {"type": 'T', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'space_data.show_seconds')]}),
+ # Preview range.
+ ("anim.previewrange_set", {"type": 'P', "value": 'PRESS'}, None),
+ ("anim.previewrange_clear", {"type": 'P', "value": 'PRESS', "alt": True}, None),
+ ])
+
+ return keymap
+
+
+def km_animation_channels(_params):
+ items = []
+ keymap = (
+ "Animation Channels",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Click select.
+ ("anim.channels_click", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("anim.channels_click", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True)]}),
+ ("anim.channels_click", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("children_only", True)]}),
+ # Rename.
+ ("anim.channels_rename", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True}, None),
+ ("anim.channels_rename", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'}, None),
+ # Select keys.
+ ("anim.channel_select_keys", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK'}, None),
+ ("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),
+ # Selection.
+ *_template_items_select_actions("anim.channels_select_all"),
+ ("anim.channels_select_box", {"type": 'B', "value": 'PRESS'}, None),
+ ("anim.channels_select_box", {"type": 'EVT_TWEAK_L', "value": 'ANY'}, None),
+ # Delete.
+ ("anim.channels_delete", {"type": 'X', "value": 'PRESS'}, None),
+ ("anim.channels_delete", {"type": 'DEL', "value": 'PRESS'}, None),
+ # Settings.
+ ("anim.channels_setting_toggle", {"type": 'W', "value": 'PRESS', "shift": True}, None),
+ ("anim.channels_setting_enable", {"type": 'W', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("anim.channels_setting_disable", {"type": 'W', "value": 'PRESS', "alt": True}, None),
+ ("anim.channels_editable_toggle", {"type": 'TAB', "value": 'PRESS'}, None),
+ # Expand/collapse.
+ ("anim.channels_expand", {"type": 'NUMPAD_PLUS', "value": 'PRESS'}, None),
+ ("anim.channels_collapse", {"type": 'NUMPAD_MINUS', "value": 'PRESS'}, None),
+ ("anim.channels_expand", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True},
+ {"properties": [("all", False)]}),
+ ("anim.channels_collapse", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True},
+ {"properties": [("all", False)]}),
+ # Move.
+ ("anim.channels_move", {"type": 'PAGE_UP', "value": 'PRESS'},
+ {"properties": [("direction", 'UP')]}),
+ ("anim.channels_move", {"type": 'PAGE_DOWN', "value": 'PRESS'},
+ {"properties": [("direction", 'DOWN')]}),
+ ("anim.channels_move", {"type": 'PAGE_UP', "value": 'PRESS', "shift": True},
+ {"properties": [("direction", 'TOP')]}),
+ ("anim.channels_move", {"type": 'PAGE_DOWN', "value": 'PRESS', "shift": True},
+ {"properties": [("direction", 'BOTTOM')]}),
+ # Group.
+ ("anim.channels_group", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
+ ("anim.channels_ungroup", {"type": 'G', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ # Menus.
+ op_menu("DOPESHEET_MT_specials_channels", {"type": 'W', "value": 'PRESS'}),
+ ])
+
+ return keymap
+
+
+# ------------------------------------------------------------------------------
+# Modes
+
+
+def km_grease_pencil(_params):
+ items = []
+ keymap = (
+ "Grease Pencil",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Draw
+ ("gpencil.annotate", {"type": 'LEFTMOUSE', "value": 'PRESS', "key_modifier": 'D'},
+ {"properties": [("mode", 'DRAW'), ("wait_for_input", False)]}),
+ # Draw - straight lines
+ ("gpencil.annotate", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True, "key_modifier": 'D'},
+ {"properties": [("mode", 'DRAW_STRAIGHT'), ("wait_for_input", False)]}),
+ # Draw - poly lines
+ ("gpencil.annotate", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "alt": True, "key_modifier": 'D'},
+ {"properties": [("mode", 'DRAW_POLY'), ("wait_for_input", False)]}),
+ # Erase
+ ("gpencil.annotate", {"type": 'RIGHTMOUSE', "value": 'PRESS', "key_modifier": 'D'},
+ {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
+
+ # Enter edit mode
+ ("gpencil.editmode_toggle", {"type": 'TAB', "value": 'PRESS', "key_modifier": 'D'}, None),
+ # Add blank frame (B because it's easy to reach from D).
+ ("gpencil.blank_frame_add", {"type": 'B', "value": 'PRESS', "key_modifier": 'D'}, None),
+ # Delete active frame - for easier video tutorials/review sessions.
+ # This works even when not in edit mode.
+ ("gpencil.active_frames_delete_all", {"type": 'X', "value": 'PRESS', "key_modifier": 'D'}, None),
+ ("gpencil.active_frames_delete_all", {"type": 'DEL', "value": 'PRESS', "key_modifier": 'D'}, None),
+ ])
+
+ return keymap
+
+
+def _grease_pencil_selection(params):
+ return [
+ # Select all
+ *_template_items_select_actions("gpencil.select_all"),
+ # Circle select
+ ("gpencil.select_circle", {"type": 'C', "value": 'PRESS'}, None),
+ # Box select
+ ("gpencil.select_box", {"type": 'B', "value": 'PRESS'}, None),
+ # Lasso select
+ ("gpencil.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True},
+ {"properties": [("deselect", False)]}),
+ ("gpencil.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True},
+ {"properties": [("deselect", True)]}),
+ # In the Node Editor, lasso select needs ALT modifier too
+ # (as somehow CTRL+LMB drag gets taken for "cut" quite early).
+ # There probably isn't too much harm adding this for other editors too
+ # as part of standard GP editing keymap. This hotkey combo doesn't seem
+ # to see much use under standard scenarios?
+ ("gpencil.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True, "alt": True},
+ {"properties": [("deselect", False)]}),
+ ("gpencil.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True, "alt": True},
+ {"properties": [("deselect", True)]}),
+ ("gpencil.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True), ("toggle", True)]}),
+ # Whole stroke select
+ ("gpencil.select", {"type": params.select_mouse, "value": 'PRESS', "alt": True},
+ {"properties": [("entire_strokes", True)]}),
+ ("gpencil.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("extend", True), ("entire_strokes", True)]}),
+ # Select linked
+ ("gpencil.select_linked", {"type": 'L', "value": 'PRESS'}, None),
+ ("gpencil.select_linked", {"type": 'L', "value": 'PRESS', "ctrl": True}, None),
+ # Select alternate
+ ("gpencil.select_alternate", {"type": 'L', "value": 'PRESS', "shift": True}, None),
+ # Select grouped
+ ("gpencil.select_grouped", {"type": 'G', "value": 'PRESS', "shift": True}, None),
+ # Select more/less
+ ("gpencil.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
+ ("gpencil.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
+ ]
+
+
+def _grease_pencil_display():
+ return [
+ ("wm.context_toggle", {"type": 'Q', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'space_data.overlay.use_gpencil_edit_lines')]}),
+ ("wm.context_toggle", {"type": 'Q', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("data_path", 'space_data.overlay.use_gpencil_multiedit_line_only')]}),
+ ]
+
+
+def km_grease_pencil_stroke_edit_mode(params):
+ items = []
+ keymap = (
+ "Grease Pencil Stroke Edit Mode",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Interpolation
+ ("gpencil.interpolate", {"type": 'E', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("gpencil.interpolate_sequence", {"type": 'E', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ # Normal select
+ ("gpencil.select", {"type": params.select_mouse, "value": 'PRESS'}, None),
+ # Selection
+ *_grease_pencil_selection(params),
+ # Duplicate and move selected points
+ ("gpencil.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
+ # Delete
+ op_menu("VIEW3D_MT_edit_gpencil_delete", {"type": 'X', "value": 'PRESS'}),
+ op_menu("VIEW3D_MT_edit_gpencil_delete", {"type": 'DEL', "value": 'PRESS'}),
+ ("gpencil.dissolve", {"type": 'X', "value": 'PRESS', "ctrl": True}, None),
+ ("gpencil.dissolve", {"type": 'DEL', "value": 'PRESS', "ctrl": True}, None),
+ ("gpencil.active_frames_delete_all", {"type": 'X', "value": 'PRESS', "shift": True}, None),
+ ("gpencil.active_frames_delete_all", {"type": 'DEL', "value": 'PRESS', "shift": True}, None),
+ # Context menu
+ op_menu("VIEW3D_MT_gpencil_edit_specials", {"type": 'W', "value": 'PRESS'}),
+ # Separate
+ op_menu("GPENCIL_MT_separate", {"type": 'P', "value": 'PRESS'}),
+ # Split and joint strokes
+ ("gpencil.stroke_split", {"type": 'V', "value": 'PRESS'}, None),
+ ("gpencil.stroke_join", {"type": 'J', "value": 'PRESS', "ctrl": True}, None),
+ ("gpencil.stroke_join", {"type": 'J', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("type", 'JOINCOPY')]}),
+ # Copy + paset
+ ("gpencil.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
+ ("gpencil.paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
+ # Snap
+ op_menu("GPENCIL_MT_snap", {"type": 'S', "value": 'PRESS', "shift": True}),
+ # Convert to geometry
+ ("gpencil.convert", {"type": 'C', "value": 'PRESS', "alt": True}, None),
+ # Show/hide
+ ("gpencil.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
+ ("gpencil.hide", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("gpencil.hide", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ("gpencil.selection_opacity_toggle", {"type": 'H', "value": 'PRESS', "ctrl": True}, None),
+ # Display
+ *_grease_pencil_display(),
+ # Isolate layer
+ ("gpencil.layer_isolate", {"type": 'NUMPAD_ASTERIX', "value": 'PRESS'}, None),
+ # Move to layer
+ ("gpencil.move_to_layer", {"type": 'M', "value": 'PRESS'}, None),
+ # Transform tools
+ ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
+ ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
+ ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
+ ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
+ ("transform.mirror", {"type": 'M', "value": 'PRESS', "ctrl": True}, None),
+ ("transform.bend", {"type": 'W', "value": 'PRESS', "shift": True}, 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", 'GPENCIL_SHRINKFATTEN')]}),
+ # Proportonal editing
+ op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
+ ("wm.context_toggle_enum", {"type": 'O', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.proportional_edit'), ("value_1", 'DISABLED'), ("value_2", 'ENABLED')]}),
+ ("wm.context_toggle_enum", {"type": 'O', "value": 'PRESS', "alt": True},
+ {"properties": [("data_path", 'tool_settings.proportional_edit'), ("value_1", 'DISABLED'), ("value_2", 'CONNECTED')]}),
+ # Add menu
+ ("object.gpencil_add", {"type": 'A', "value": 'PRESS', "shift": True}, None),
+ # Vertex group menu
+ op_menu("GPENCIL_MT_gpencil_vertex_group", {"type": 'G', "value": 'PRESS', "ctrl": True}),
+ # Toggle edit mode
+ ("gpencil.editmode_toggle", {"type": 'TAB', "value": 'PRESS'}, None),
+ # Select mode
+ ("gpencil.selectmode_toggle", {"type": 'ONE', "value": 'PRESS'},
+ {"properties": [("mode", 0)]}),
+ ("gpencil.selectmode_toggle", {"type": 'TWO', "value": 'PRESS'},
+ {"properties": [("mode", 1)]}),
+ ])
+
+ if params.apple:
+ # Apple copy + paste
+ items.extend([
+ ("gpencil.copy", {"type": 'C', "value": 'PRESS', "oskey": True}, None),
+ ("gpencil.paste", {"type": 'V', "value": 'PRESS', "oskey": True}, None),
+ ])
+
+ return keymap
+
+
+def km_grease_pencil_stroke_paint_mode(_params):
+ items = []
+ keymap = (
+ "Grease Pencil Stroke Paint Mode",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Brush strength
+ ("wm.radial_control", {"type": 'F', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path_primary", 'tool_settings.gpencil_paint.brush.gpencil_settings.pen_strength')]}),
+ # Brush size
+ ("wm.radial_control", {"type": 'F', "value": 'PRESS'},
+ {"properties": [("data_path_primary", 'tool_settings.gpencil_paint.brush.size')]}),
+ # Brush size
+ ("wm.radial_control", {"type": 'F', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path_primary", 'user_preferences.edit.grease_pencil_eraser_radius')]}),
+ # Draw context menu
+ op_menu("GPENCIL_MT_gpencil_draw_specials", {"type": 'W', "value": 'PRESS'}),
+ # Draw delete menu
+ op_menu("GPENCIL_MT_gpencil_draw_delete", {"type": 'X', "value": 'PRESS'}),
+ ])
+
+ return keymap
+
+
+def km_grease_pencil_stroke_paint_draw_brush(_params):
+ items = []
+ keymap = (
+ "Grease Pencil Stroke Paint (Draw brush)",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Draw
+ ("gpencil.draw", {"type": 'LEFTMOUSE', "value": 'PRESS'},
+ {"properties": [("mode", 'DRAW'), ("wait_for_input", False)]}),
+ ("gpencil.draw", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("mode", 'DRAW'), ("wait_for_input", False)]}),
+ # Draw - straight lines
+ ("gpencil.draw", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True},
+ {"properties": [("mode", 'DRAW_STRAIGHT'), ("wait_for_input", False)]}),
+ # Draw - poly lines
+ ("gpencil.draw", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("mode", 'DRAW_POLY'), ("wait_for_input", False)]}),
+ # Erase
+ ("gpencil.draw", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
+
+ # Tablet Mappings for Drawing ------------------ */
+ # For now, only support direct drawing using the eraser, as most users using a tablet
+ # may still want to use that as their primary pointing device!
+ ("gpencil.draw", {"type": 'ERASER', "value": 'PRESS'},
+ {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
+ # Selected (used by eraser)
+ # Box select
+ ("gpencil.select_box", {"type": 'B', "value": 'PRESS'}, None),
+ # Lasso select
+ ("gpencil.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True, "alt": True},
+ {"properties": [("deselect", False)]}),
+ ])
+
+ return keymap
+
+
+def km_grease_pencil_stroke_paint_erase(_params):
+ items = []
+ keymap = (
+ "Grease Pencil Stroke Paint (Erase)",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Erase
+ ("gpencil.draw", {"type": 'LEFTMOUSE', "value": 'PRESS'},
+ {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
+ ("gpencil.draw", {"type": 'ERASER', "value": 'PRESS'},
+ {"properties": [("mode", 'ERASER'), ("wait_for_input", False)]}),
+ # Box select (used by eraser)
+ ("gpencil.select_box", {"type": 'B', "value": 'PRESS'}, None),
+ # Lasso select
+ ("gpencil.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True, "alt": True},
+ {"properties": [("deselect", False)]}),
+ ])
+
+ return keymap
+
+
+def km_grease_pencil_stroke_paint_fill(_params):
+ items = []
+ keymap = (
+ "Grease Pencil Stroke Paint (Fill)",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Fill
+ ("gpencil.fill", {"type": 'LEFTMOUSE', "value": 'PRESS'},
+ {"properties": [("on_back", False)]}),
+ ("gpencil.fill", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("on_back", True)]}),
+ # If press alternate key, the brush now it's for drawing areas
+ ("gpencil.draw", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'DRAW'), ("wait_for_input", False), ("disable_straight", True)]}),
+ # If press alternative key, the brush now it's for drawing lines
+ ("gpencil.draw", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True},
+ {"properties": [("mode", 'DRAW'), ("wait_for_input", False), ("disable_straight", True), ("disable_fill", True)]}),
+ ])
+
+ return keymap
+
+
+def km_grease_pencil_stroke_sculpt_mode(params):
+ items = []
+ keymap = (
+ "Grease Pencil Stroke Sculpt Mode",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items}
+ )
+
+ items.extend([
+ # Selection
+ *_grease_pencil_selection(params),
+ # Painting
+ ("gpencil.brush_paint", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("wait_for_input", False), ("keep_brush", True)]}),
+ ("gpencil.brush_paint", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("wait_for_input", False), ("keep_brush", True)]}),
+ # Brush strength
+ ("wm.radial_control", {"type": 'F', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path_primary", 'tool_settings.gpencil_sculpt.brush.strength')]}),
+ # Brush size
+ ("wm.radial_control", {"type": 'F', "value": 'PRESS'},
+ {"properties": [("data_path_primary", 'tool_settings.gpencil_sculpt.brush.size')]}),
+ # Context menu
+ op_menu("VIEW3D_MT_gpencil_sculpt_specials", {"type": 'W', "value": 'PRESS'}),
+ # Display
+ *_grease_pencil_display(),
+ ])
+
+ return keymap
+
+
+def km_grease_pencil_stroke_weight_mode(params):
+ items = []
+ keymap = (
+ "Grease Pencil Stroke Weight Mode",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Selection
+ *_grease_pencil_selection(params),
+ # Painting
+ ("gpencil.brush_paint", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("wait_for_input", False), ("keep_brush", True)]}),
+ ("gpencil.brush_paint", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("wait_for_input", False), ("keep_brush", True)]}),
+ # Brush strength
+ ("wm.radial_control", {"type": 'F', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path_primary", 'tool_settings.gpencil_sculpt.weight_brush.strength')]}),
+ # Brush sze
+ ("wm.radial_control", {"type": 'F', "value": 'PRESS'},
+ {"properties": [("data_path_primary", 'tool_settings.gpencil_sculpt.weight_brush.size')]}),
+ # Display
+ *_grease_pencil_display(),
+ ])
+
+ return keymap
+
+
+def km_face_mask(_params):
+ items = []
+ keymap = (
+ "Face Mask",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ *_template_items_select_actions("paint.face_select_all"),
+ ("paint.face_select_hide", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("paint.face_select_hide", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ("paint.face_select_reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
+ ("paint.face_select_linked", {"type": 'L', "value": 'PRESS', "ctrl": True}, None),
+ ("paint.face_select_linked_pick", {"type": 'L', "value": 'PRESS'},
+ {"properties": [("deselect", False)]}),
+ ("paint.face_select_linked_pick", {"type": 'L', "value": 'PRESS', "shift": True},
+ {"properties": [("deselect", True)]}),
+ ])
+
+ return keymap
+
+
+def km_weight_paint_vertex_selection(_params):
+ items = []
+ keymap = (
+ "Weight Paint Vertex Selection",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ *_template_items_select_actions("paint.vert_select_all"),
+ ("view3d.select_box", {"type": 'B', "value": 'PRESS'}, None),
+ ("view3d.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "ctrl": True},
+ {"properties": [("mode", 'ADD')]}),
+ ("view3d.select_lasso", {"type": 'EVT_TWEAK_A', "value": 'ANY', "shift": True, "ctrl": True},
+ {"properties": [("mode", 'SUB')]}),
+ ("view3d.select_circle", {"type": 'C', "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+def km_pose(params):
+ items = []
+ keymap = (
+ "Pose",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("object.parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
+ op_menu("VIEW3D_MT_add", {"type": 'A', "value": 'PRESS', "shift": True}),
+ ("pose.hide", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("pose.hide", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ("pose.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
+ op_menu("VIEW3D_MT_pose_apply", {"type": 'A', "value": 'PRESS', "ctrl": True}),
+ ("pose.rot_clear", {"type": 'R', "value": 'PRESS', "alt": True}, None),
+ ("pose.loc_clear", {"type": 'G', "value": 'PRESS', "alt": True}, None),
+ ("pose.scale_clear", {"type": 'S', "value": 'PRESS', "alt": True}, None),
+ ("pose.quaternions_flip", {"type": 'F', "value": 'PRESS', "alt": True}, None),
+ ("pose.rotation_mode_set", {"type": 'R', "value": 'PRESS', "ctrl": True}, None),
+ ("pose.copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
+ ("pose.paste", {"type": 'V', "value": 'PRESS', "ctrl": True},
+ {"properties": [("flipped", False)]}),
+ ("pose.paste", {"type": 'V', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("flipped", True)]}),
+ *_template_items_select_actions("pose.select_all"),
+ ("pose.select_parent", {"type": 'P', "value": 'PRESS', "shift": True}, None),
+ ("pose.select_hierarchy", {"type": 'LEFT_BRACKET', "value": 'PRESS'},
+ {"properties": [("direction", 'PARENT'), ("extend", False)]}),
+ ("pose.select_hierarchy", {"type": 'LEFT_BRACKET', "value": 'PRESS', "shift": True},
+ {"properties": [("direction", 'PARENT'), ("extend", True)]}),
+ ("pose.select_hierarchy", {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
+ {"properties": [("direction", 'CHILD'), ("extend", False)]}),
+ ("pose.select_hierarchy", {"type": 'RIGHT_BRACKET', "value": 'PRESS', "shift": True},
+ {"properties": [("direction", 'CHILD'), ("extend", True)]}),
+ ("pose.select_linked", {"type": 'L', "value": 'PRESS'}, None),
+ ("pose.select_grouped", {"type": 'G', "value": 'PRESS', "shift": True}, None),
+ ("pose.select_mirror", {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("pose.constraint_add_with_targets", {"type": 'C', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("pose.constraints_clear", {"type": 'C', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("pose.ik_add", {"type": 'I', "value": 'PRESS', "shift": True}, None),
+ ("pose.ik_clear", {"type": 'I', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ op_menu("VIEW3D_MT_pose_group", {"type": 'G', "value": 'PRESS', "ctrl": True}),
+ op_menu("VIEW3D_MT_bone_options_toggle", {"type": 'W', "value": 'PRESS', "shift": True}),
+ op_menu("VIEW3D_MT_bone_options_enable", {"type": 'W', "value": 'PRESS', "shift": True, "ctrl": True}),
+ op_menu("VIEW3D_MT_bone_options_disable", {"type": 'W', "value": 'PRESS', "alt": True}),
+ ("armature.layers_show_all", {"type": 'ACCENT_GRAVE', "value": 'PRESS', "ctrl": True}, None),
+ ("armature.armature_layers", {"type": 'M', "value": 'PRESS', "shift": True}, None),
+ ("pose.bone_layers", {"type": 'M', "value": 'PRESS'}, None),
+ ("wm.context_toggle", {"type": 'Z', "value": 'PRESS'},
+ {"properties": [("data_path", 'space_data.overlay.show_bone_select')]}),
+ ("transform.transform", {"type": 'S', "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("mode", 'BONE_SIZE')]}),
+ ("anim.keyframe_insert_menu", {"type": 'I', "value": 'PRESS'}, None),
+ ("anim.keyframe_delete_v3d", {"type": 'I', "value": 'PRESS', "alt": True}, None),
+ ("anim.keying_set_active_set", {"type": 'I', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
+ ("poselib.browse_interactive", {"type": 'L', "value": 'PRESS', "ctrl": True}, None),
+ ("poselib.pose_add", {"type": 'L', "value": 'PRESS', "shift": True}, None),
+ ("poselib.pose_remove", {"type": 'L', "value": 'PRESS', "alt": True}, None),
+ ("poselib.pose_rename", {"type": 'L', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("pose.push", {"type": 'E', "value": 'PRESS', "ctrl": True}, None),
+ ("pose.relax", {"type": 'E', "value": 'PRESS', "alt": True}, None),
+ ("pose.breakdown", {"type": 'E', "value": 'PRESS', "shift": True}, None),
+ op_menu("VIEW3D_MT_pose_specials", {"type": 'W', "value": 'PRESS'}),
+ op_menu("VIEW3D_MT_pose_propagate", {"type": 'P', "value": 'PRESS', "alt": True}),
+ ])
+
+ if params.apple:
+ items.extend([
+ ("pose.copy", {"type": 'C', "value": 'PRESS', "oskey": True}, None),
+ ("pose.paste", {"type": 'V', "value": 'PRESS', "oskey": True},
+ {"properties": [("flipped", False)]}),
+ ("pose.paste", {"type": 'V', "value": 'PRESS', "shift": True, "oskey": True},
+ {"properties": [("flipped", True)]}),
+ ])
+
+ return keymap
+
+
+def km_object_mode(params):
+ items = []
+ keymap = (
+ "Object Mode",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
+ ("wm.context_toggle", {"type": 'O', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.use_proportional_edit_objects')]}),
+ *_template_items_select_actions("object.select_all"),
+ ("object.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
+ ("object.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
+ ("object.select_linked", {"type": 'L', "value": 'PRESS', "shift": True}, None),
+ ("object.select_grouped", {"type": 'G', "value": 'PRESS', "shift": True}, None),
+ ("object.select_hierarchy", {"type": 'LEFT_BRACKET', "value": 'PRESS'},
+ {"properties": [("direction", 'PARENT'), ("extend", False)]}),
+ ("object.select_hierarchy", {"type": 'LEFT_BRACKET', "value": 'PRESS', "shift": True},
+ {"properties": [("direction", 'PARENT'), ("extend", True)]}),
+ ("object.select_hierarchy", {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
+ {"properties": [("direction", 'CHILD'), ("extend", False)]}),
+ ("object.select_hierarchy", {"type": 'RIGHT_BRACKET', "value": 'PRESS', "shift": True},
+ {"properties": [("direction", 'CHILD'), ("extend", True)]}),
+ ("object.parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
+ ("object.parent_clear", {"type": 'P', "value": 'PRESS', "alt": True}, None),
+ ("object.location_clear", {"type": 'G', "value": 'PRESS', "alt": True},
+ {"properties": [("clear_delta", False)]}),
+ ("object.rotation_clear", {"type": 'R', "value": 'PRESS', "alt": True},
+ {"properties": [("clear_delta", False)]}),
+ ("object.scale_clear", {"type": 'S', "value": 'PRESS', "alt": True},
+ {"properties": [("clear_delta", False)]}),
+ ("object.delete", {"type": 'X', "value": 'PRESS'},
+ {"properties": [("use_global", False)]}),
+ ("object.delete", {"type": 'X', "value": 'PRESS', "shift": True},
+ {"properties": [("use_global", True)]}),
+ ("object.delete", {"type": 'DEL', "value": 'PRESS'},
+ {"properties": [("use_global", False)]}),
+ ("object.delete", {"type": 'DEL', "value": 'PRESS', "shift": True},
+ {"properties": [("use_global", True)]}),
+ op_menu("VIEW3D_MT_add", {"type": 'A', "value": 'PRESS', "shift": True}),
+ op_menu("VIEW3D_MT_object_apply", {"type": 'A', "value": 'PRESS', "ctrl": True}),
+ op_menu("VIEW3D_MT_make_links", {"type": 'L', "value": 'PRESS', "ctrl": True}),
+ ("object.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
+ ("object.duplicate_move_linked", {"type": 'D', "value": 'PRESS', "alt": True}, None),
+ ("object.join", {"type": 'J', "value": 'PRESS', "ctrl": True}, None),
+ ("anim.keyframe_insert_menu", {"type": 'I', "value": 'PRESS'}, None),
+ ("anim.keyframe_delete_v3d", {"type": 'I', "value": 'PRESS', "alt": True}, None),
+ ("anim.keying_set_active_set", {"type": 'I', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
+ ("collection.create", {"type": 'G', "value": 'PRESS', "ctrl": True}, None),
+ ("collection.objects_remove", {"type": 'G', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("collection.objects_remove_all", {"type": 'G', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
+ ("collection.objects_add_active", {"type": 'G', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("collection.objects_remove_active", {"type": 'G', "value": 'PRESS', "shift": True, "alt": True}, None),
+ op_menu("VIEW3D_MT_object_specials", {"type": 'W', "value": 'PRESS'}),
+ # TODO: expand into loop.
+ ("object.subdivision_set", {"type": 'ZERO', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 0)]}),
+ ("object.subdivision_set", {"type": 'ONE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 1)]}),
+ ("object.subdivision_set", {"type": 'TWO', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 2)]}),
+ ("object.subdivision_set", {"type": 'THREE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 3)]}),
+ ("object.subdivision_set", {"type": 'FOUR', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 4)]}),
+ ("object.subdivision_set", {"type": 'FIVE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 5)]}),
+ ("object.move_to_collection", {"type": 'M', "value": 'PRESS'}, None),
+ ("object.link_to_collection", {"type": 'M', "value": 'PRESS', "shift": True}, None),
+ ("object.hide_view_clear", {"type": 'H', "value": 'PRESS', "alt": True}, None),
+ ("object.hide_view_set", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("object.hide_view_set", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ("object.hide_collection", {"type": 'H', "value": 'PRESS', "ctrl": True}, None),
+ # TODO: expand into loop.
+ ("object.hide_collection", {"type": 'ZERO', "value": 'PRESS', "any": True},
+ {"properties": [("collection_index", 10)]}),
+ ("object.hide_collection", {"type": 'ONE', "value": 'PRESS', "any": True},
+ {"properties": [("collection_index", 1)]}),
+ ("object.hide_collection", {"type": 'TWO', "value": 'PRESS', "any": True},
+ {"properties": [("collection_index", 2)]}),
+ ("object.hide_collection", {"type": 'THREE', "value": 'PRESS', "any": True},
+ {"properties": [("collection_index", 3)]}),
+ ("object.hide_collection", {"type": 'FOUR', "value": 'PRESS', "any": True},
+ {"properties": [("collection_index", 4)]}),
+ ("object.hide_collection", {"type": 'FIVE', "value": 'PRESS', "any": True},
+ {"properties": [("collection_index", 5)]}),
+ ("object.hide_collection", {"type": 'SIX', "value": 'PRESS', "any": True},
+ {"properties": [("collection_index", 6)]}),
+ ("object.hide_collection", {"type": 'SEVEN', "value": 'PRESS', "any": True},
+ {"properties": [("collection_index", 7)]}),
+ ("object.hide_collection", {"type": 'EIGHT', "value": 'PRESS', "any": True},
+ {"properties": [("collection_index", 8)]}),
+ ("object.hide_collection", {"type": 'NINE', "value": 'PRESS', "any": True},
+ {"properties": [("collection_index", 9)]}),
+ ])
+
+ if params.legacy:
+ items.extend([
+ ("object.select_mirror", {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("object.parent_no_inverse_set", {"type": 'P', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("object.track_set", {"type": 'T', "value": 'PRESS', "ctrl": True}, None),
+ ("object.track_clear", {"type": 'T', "value": 'PRESS', "alt": True}, None),
+ ("object.constraint_add_with_targets", {"type": 'C', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("object.constraints_clear", {"type": 'C', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("object.origin_clear", {"type": 'O', "value": 'PRESS', "alt": True}, None),
+ ("object.duplicates_make_real", {"type": 'A', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ op_menu("VIEW3D_MT_make_single_user", {"type": 'U', "value": 'PRESS'}),
+ ("object.convert", {"type": 'C', "value": 'PRESS', "alt": True}, None),
+ ("object.proxy_make", {"type": 'P', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("object.make_local", {"type": 'L', "value": 'PRESS'}, None),
+ ("object.data_transfer", {"type": 'T', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ])
+
+ return keymap
+
+
+def km_paint_curve(params):
+ items = []
+ keymap = (
+ "Paint Curve",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("paintcurve.add_point_slide", {"type": params.action_mouse, "value": 'PRESS', "ctrl": True}, None),
+ ("paintcurve.select", {"type": params.select_mouse, "value": 'PRESS'}, None),
+ ("paintcurve.select", {"type": params.select_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("extend", True)]}),
+ ("paintcurve.slide", {"type": params.action_mouse, "value": 'PRESS'}, None),
+ ("paintcurve.slide", {"type": params.action_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("align", True)]}),
+ ("paintcurve.select", {"type": 'A', "value": 'PRESS'},
+ {"properties": [("toggle", True)]}),
+ ("paintcurve.cursor", {"type": params.action_mouse, "value": 'PRESS'}, None),
+ ("paintcurve.delete_point", {"type": 'X', "value": 'PRESS'}, None),
+ ("paintcurve.delete_point", {"type": 'DEL', "value": 'PRESS'}, None),
+ ("paintcurve.draw", {"type": 'RET', "value": 'PRESS'}, None),
+ ("paintcurve.draw", {"type": 'NUMPAD_ENTER', "value": 'PRESS'}, None),
+ ("transform.translate", {"type": 'G', "value": 'PRESS'}, None),
+ ("transform.translate", {"type": 'EVT_TWEAK_S', "value": 'ANY'}, None),
+ ("transform.rotate", {"type": 'R', "value": 'PRESS'}, None),
+ ("transform.resize", {"type": 'S', "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+def km_curve(params):
+ items = []
+ keymap = (
+ "Curve",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ op_menu("VIEW3D_MT_curve_add", {"type": 'A', "value": 'PRESS', "shift": True}),
+ ("curve.handle_type_set", {"type": 'V', "value": 'PRESS'}, None),
+ ("curve.vertex_add", {"type": params.action_mouse, "value": 'CLICK', "ctrl": True}, None),
+ ("curve.draw", {"type": params.action_mouse, "value": 'PRESS', "shift": True},
+ {"properties": [("wait_for_input", False)]}),
+ ("curve.draw", {"type": 'PEN', "value": 'PRESS', "shift": True},
+ {"properties": [("wait_for_input", False)]}),
+ *_template_items_select_actions("curve.select_all"),
+ ("curve.select_row", {"type": 'R', "value": 'PRESS', "shift": True}, None),
+ ("curve.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
+ ("curve.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
+ ("curve.select_linked", {"type": 'L', "value": 'PRESS', "ctrl": True}, None),
+ ("curve.select_similar", {"type": 'G', "value": 'PRESS', "shift": True}, None),
+ ("curve.select_linked_pick", {"type": 'L', "value": 'PRESS'},
+ {"properties": [("deselect", False)]}),
+ ("curve.select_linked_pick", {"type": 'L', "value": 'PRESS', "shift": True},
+ {"properties": [("deselect", True)]}),
+ ("curve.shortest_path_pick", {"type": params.select_mouse, "value": 'CLICK', "ctrl": True}, None),
+ ("curve.separate", {"type": 'P', "value": 'PRESS'}, None),
+ ("curve.split", {"type": 'Y', "value": 'PRESS'}, None),
+ ("curve.extrude_move", {"type": 'E', "value": 'PRESS'}, None),
+ ("curve.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
+ ("curve.make_segment", {"type": 'F', "value": 'PRESS'}, None),
+ ("curve.cyclic_toggle", {"type": 'C', "value": 'PRESS', "alt": True}, None),
+ op_menu("VIEW3D_MT_edit_curve_delete", {"type": 'X', "value": 'PRESS'}),
+ op_menu("VIEW3D_MT_edit_curve_delete", {"type": 'DEL', "value": 'PRESS'}),
+ ("curve.dissolve_verts", {"type": 'X', "value": 'PRESS', "ctrl": True}, None),
+ ("curve.dissolve_verts", {"type": 'DEL', "value": 'PRESS', "ctrl": True}, None),
+ ("curve.tilt_clear", {"type": 'T', "value": 'PRESS', "alt": True}, None),
+ ("transform.tilt", {"type": 'T', "value": 'PRESS', "ctrl": True}, None),
+ ("transform.transform", {"type": 'S', "value": 'PRESS', "alt": True},
+ {"properties": [("mode", 'CURVE_SHRINKFATTEN')]}),
+ ("curve.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
+ ("curve.hide", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("curve.hide", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ("curve.normals_make_consistent", {"type": 'N', "value": 'PRESS', "ctrl" if params.legacy else "shift": True}, None),
+ ("object.vertex_parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
+ op_menu("VIEW3D_MT_edit_curve_specials", {"type": 'W', "value": 'PRESS'}),
+ op_menu("VIEW3D_MT_hook", {"type": 'H', "value": 'PRESS', "ctrl": True}),
+ op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
+ ("wm.context_toggle_enum", {"type": 'O', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.proportional_edit'), ("value_1", 'DISABLED'), ("value_2", 'ENABLED')]}),
+ ("wm.context_toggle_enum", {"type": 'O', "value": 'PRESS', "alt": True},
+ {"properties": [("data_path", 'tool_settings.proportional_edit'), ("value_1", 'DISABLED'), ("value_2", 'CONNECTED')]}),
+ ])
+
+ return keymap
+
+# Radial control setup helpers, this operator has a lot of properties.
+
+
+def radial_control_properties(paint, prop, secondary_prop, secondary_rotation=False, color=False, zoom=False):
+ brush_path = 'tool_settings.' + paint + '.brush'
+ unified_path = 'tool_settings.unified_paint_settings'
+ rotation = 'mask_texture_slot.angle' if secondary_rotation else 'texture_slot.angle'
+ return {
+ "properties": [
+ ("data_path_primary", brush_path + '.' + prop),
+ ("data_path_secondary", unified_path + '.' + prop if secondary_prop else ''),
+ ("use_secondary", unified_path + '.' + secondary_prop if secondary_prop else ''),
+ ("rotation_path", brush_path + '.' + rotation),
+ ("color_path", brush_path + '.cursor_color_add'),
+ ("fill_color_path", brush_path + '.color' if color else ''),
+ ("fill_color_override_path", unified_path + '.color' if color else ''),
+ ("fill_color_override_test_path", unified_path + '.use_unified_color' if color else ''),
+ ("zoom_path", 'space_data.zoom' if zoom else ''),
+ ("image_id", brush_path + ''),
+ ("secondary_tex", secondary_rotation),
+ ],
+ }
+
+# Radial controls for the paint and sculpt modes.
+
+
+def _template_paint_radial_control(paint, rotation=False, secondary_rotation=False, color=False, zoom=False):
+ items = []
+
+ items.extend([
+ ("wm.radial_control", {"type": 'F', "value": 'PRESS'},
+ radial_control_properties(paint, 'size', 'use_unified_size', secondary_rotation=secondary_rotation, color=color, zoom=zoom)),
+ ("wm.radial_control", {"type": 'F', "value": 'PRESS', "shift": True},
+ radial_control_properties(paint, 'strength', 'use_unified_strength', secondary_rotation=secondary_rotation, color=color)),
+ ])
+
+ if rotation:
+ items.extend([
+ ("wm.radial_control", {"type": 'F', "value": 'PRESS', "ctrl": True},
+ radial_control_properties(paint, 'texture_slot.angle', None, color=color)),
+ ])
+
+ if secondary_rotation:
+ items.extend([
+ ("wm.radial_control", {"type": 'F', "value": 'PRESS', "ctrl": True, "alt": True},
+ radial_control_properties(paint, 'mask_texture_slot.angle', None, secondary_rotation=secondary_rotation, color=color)),
+ ])
+
+ return items
+
+
+def km_image_paint(_params):
+ items = []
+ keymap = (
+ "Image Paint",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("paint.image_paint", {"type": 'LEFTMOUSE', "value": 'PRESS'},
+ {"properties": [("mode", 'NORMAL')]}),
+ ("paint.image_paint", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'INVERT')]}),
+ ("paint.brush_colors_flip", {"type": 'X', "value": 'PRESS'}, None),
+ ("paint.grab_clone", {"type": 'RIGHTMOUSE', "value": 'PRESS'}, None),
+ ("paint.sample_color", {"type": 'S', "value": 'PRESS'}, None),
+ ("brush.scale_size", {"type": 'LEFT_BRACKET', "value": 'PRESS'},
+ {"properties": [("scalar", 0.9)]}),
+ ("brush.scale_size", {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
+ {"properties": [("scalar", 1.0 / 0.9)]}),
+ *_template_paint_radial_control("image_paint", color=True, zoom=True, rotation=True, secondary_rotation=True),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS'},
+ {"properties": [("mode", 'TRANSLATION')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("mode", 'SCALE')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'ROTATION')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "alt": True},
+ {"properties": [("mode", 'TRANSLATION'), ("texmode", 'SECONDARY')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("mode", 'SCALE'), ("texmode", 'SECONDARY')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("mode", 'ROTATION'), ("texmode", 'SECONDARY')]}),
+ ("wm.context_toggle", {"type": 'M', "value": 'PRESS'},
+ {"properties": [("data_path", 'image_paint_object.data.use_paint_mask')]}),
+ ("wm.context_toggle", {"type": 'S', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'tool_settings.image_paint.brush.use_smooth_stroke')]}),
+ op_menu("VIEW3D_MT_angle_control", {"type": 'R', "value": 'PRESS'}),
+ ("wm.context_menu_enum", {"type": 'E', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.image_paint.brush.stroke_method')]}),
+ ])
+
+ return keymap
+
+
+def km_vertex_paint(_params):
+ items = []
+ keymap = (
+ "Vertex Paint",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("paint.vertex_paint", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("paint.brush_colors_flip", {"type": 'X', "value": 'PRESS'}, None),
+ ("paint.sample_color", {"type": 'S', "value": 'PRESS'}, None),
+ ("paint.vertex_color_set", {"type": 'K', "value": 'PRESS', "shift": True}, None),
+ ("brush.scale_size", {"type": 'LEFT_BRACKET', "value": 'PRESS'},
+ {"properties": [("scalar", 0.9)]}),
+ ("brush.scale_size", {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
+ {"properties": [("scalar", 1.0 / 0.9)]}),
+ *_template_paint_radial_control("vertex_paint", color=True, rotation=True),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS'},
+ {"properties": [("mode", 'TRANSLATION')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("mode", 'SCALE')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'ROTATION')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "alt": True},
+ {"properties": [("mode", 'TRANSLATION'), ("texmode", 'SECONDARY')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("mode", 'SCALE'), ("texmode", 'SECONDARY')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("mode", 'ROTATION'), ("texmode", 'SECONDARY')]}),
+ ("wm.context_toggle", {"type": 'M', "value": 'PRESS'},
+ {"properties": [("data_path", 'vertex_paint_object.data.use_paint_mask')]}),
+ ("wm.context_toggle", {"type": 'S', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'tool_settings.vertex_paint.brush.use_smooth_stroke')]}),
+ op_menu("VIEW3D_MT_angle_control", {"type": 'R', "value": 'PRESS'}),
+ ("wm.context_menu_enum", {"type": 'E', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.vertex_paint.brush.stroke_method')]}),
+ ])
+
+ return keymap
+
+
+def km_weight_paint(params):
+ items = []
+ keymap = (
+ "Weight Paint",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("paint.weight_paint", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("paint.weight_sample", {"type": params.action_mouse, "value": 'PRESS', "ctrl": True}, None),
+ ("paint.weight_sample_group", {"type": params.action_mouse, "value": 'PRESS', "shift": True}, None),
+ ("paint.weight_gradient", {"type": 'LEFTMOUSE', "value": 'PRESS', "alt": True},
+ {"properties": [("type", 'LINEAR')]}),
+ ("paint.weight_gradient", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("type", 'RADIAL')]}),
+ ("paint.weight_set", {"type": 'K', "value": 'PRESS', "shift": True}, None),
+ ("brush.scale_size", {"type": 'LEFT_BRACKET', "value": 'PRESS'},
+ {"properties": [("scalar", 0.9)]}),
+ ("brush.scale_size", {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
+ {"properties": [("scalar", 1.0 / 0.9)]}),
+ *_template_paint_radial_control("weight_paint"),
+ ("wm.radial_control", {"type": 'W', "value": 'PRESS'},
+ radial_control_properties("weight_paint", 'weight', 'use_unified_weight')),
+ ("wm.context_menu_enum", {"type": 'E', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.vertex_paint.brush.stroke_method')]}),
+ ("wm.context_toggle", {"type": 'M', "value": 'PRESS'},
+ {"properties": [("data_path", 'weight_paint_object.data.use_paint_mask')]}),
+ ("wm.context_toggle", {"type": 'V', "value": 'PRESS'},
+ {"properties": [("data_path", 'weight_paint_object.data.use_paint_mask_vertex')]}),
+ ("wm.context_toggle", {"type": 'S', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'tool_settings.weight_paint.brush.use_smooth_stroke')]}),
+ ])
+
+ return keymap
+
+
+def km_sculpt(_params):
+ items = []
+ keymap = (
+ "Sculpt",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Brush strokes
+ ("sculpt.brush_stroke", {"type": 'LEFTMOUSE', "value": 'PRESS'},
+ {"properties": [("mode", 'NORMAL')]}),
+ ("sculpt.brush_stroke", {"type": 'LEFTMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'INVERT')]}),
+ ("sculpt.brush_stroke", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("mode", 'SMOOTH')]}),
+ # Partial Visibility Show/hide
+ ("paint.hide_show", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("action", 'SHOW'), ("area", 'INSIDE')]}),
+ ("paint.hide_show", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("action", 'HIDE'), ("area", 'INSIDE')]}),
+ ("paint.hide_show", {"type": 'H', "value": 'PRESS', "alt": True},
+ {"properties": [("action", 'SHOW'), ("area", 'ALL')]}),
+ # Subdivision levels
+ # TODO: expand into loop.
+ ("object.subdivision_set", {"type": 'ZERO', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 0)]}),
+ ("object.subdivision_set", {"type": 'ONE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 1)]}),
+ ("object.subdivision_set", {"type": 'TWO', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 2)]}),
+ ("object.subdivision_set", {"type": 'THREE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 3)]}),
+ ("object.subdivision_set", {"type": 'FOUR', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 4)]}),
+ ("object.subdivision_set", {"type": 'FIVE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 5)]}),
+ ("object.subdivision_set", {"type": 'PAGE_UP', "value": 'PRESS'},
+ {"properties": [("level", 1), ("relative", True)]}),
+ ("object.subdivision_set", {"type": 'PAGE_DOWN', "value": 'PRESS'},
+ {"properties": [("level", -1), ("relative", True)]}),
+ # Mask
+ ("paint.mask_flood_fill", {"type": 'M', "value": 'PRESS', "alt": True},
+ {"properties": [("mode", 'VALUE'), ("value", 0.0)]}),
+ ("paint.mask_flood_fill", {"type": 'I', "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'INVERT')]}),
+ ("paint.mask_lasso_gesture", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("wm.context_toggle", {"type": 'M', "value": 'PRESS', "ctrl": True},
+ {"properties": [("data_path", 'scene.tool_settings.sculpt.show_mask')]}),
+ # Dynamic topology
+ ("sculpt.dynamic_topology_toggle", {"type": 'D', "value": 'PRESS', "ctrl": True}, None),
+ ("sculpt.set_detail_size", {"type": 'D', "value": 'PRESS', "shift": True}, None),
+ # Brush properties
+ ("brush.scale_size", {"type": 'LEFT_BRACKET', "value": 'PRESS'},
+ {"properties": [("scalar", 0.9)]}),
+ ("brush.scale_size", {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
+ {"properties": [("scalar", 1.0 / 0.9)]}),
+ *_template_paint_radial_control("sculpt", rotation=True),
+ # Stencil
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS'},
+ {"properties": [("mode", 'TRANSLATION')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True},
+ {"properties": [("mode", 'SCALE')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'ROTATION')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "alt": True},
+ {"properties": [("mode", 'TRANSLATION'), ("texmode", 'SECONDARY')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("mode", 'SCALE'), ("texmode", 'SECONDARY')]}),
+ ("brush.stencil_control", {"type": 'RIGHTMOUSE', "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("mode", 'ROTATION'), ("texmode", 'SECONDARY')]}),
+ # Tools
+ ("paint.brush_select", {"type": 'X', "value": 'PRESS'},
+ {"properties": [("paint_mode", 'SCULPT'), ("sculpt_tool", 'DRAW')]}),
+ ("paint.brush_select", {"type": 'S', "value": 'PRESS'},
+ {"properties": [("paint_mode", 'SCULPT'), ("sculpt_tool", 'SMOOTH')]}),
+ ("paint.brush_select", {"type": 'P', "value": 'PRESS'},
+ {"properties": [("paint_mode", 'SCULPT'), ("sculpt_tool", 'PINCH')]}),
+ ("paint.brush_select", {"type": 'I', "value": 'PRESS'},
+ {"properties": [("paint_mode", 'SCULPT'), ("sculpt_tool", 'INFLATE')]}),
+ ("paint.brush_select", {"type": 'G', "value": 'PRESS'},
+ {"properties": [("paint_mode", 'SCULPT'), ("sculpt_tool", 'GRAB')]}),
+ ("paint.brush_select", {"type": 'L', "value": 'PRESS'},
+ {"properties": [("paint_mode", 'SCULPT'), ("sculpt_tool", 'LAYER')]}),
+ ("paint.brush_select", {"type": 'T', "value": 'PRESS', "shift": True},
+ {"properties": [("paint_mode", 'SCULPT'), ("sculpt_tool", 'FLATTEN')]}),
+ ("paint.brush_select", {"type": 'C', "value": 'PRESS'},
+ {"properties": [("paint_mode", 'SCULPT'), ("sculpt_tool", 'CLAY')]}),
+ ("paint.brush_select", {"type": 'C', "value": 'PRESS', "shift": True},
+ {"properties": [("paint_mode", 'SCULPT'), ("sculpt_tool", 'CREASE')]}),
+ ("paint.brush_select", {"type": 'K', "value": 'PRESS'},
+ {"properties": [("paint_mode", 'SCULPT'), ("sculpt_tool", 'SNAKE_HOOK')]}),
+ ("paint.brush_select", {"type": 'M', "value": 'PRESS'},
+ {"properties": [("paint_mode", 'SCULPT'), ("sculpt_tool", 'MASK'), ("toggle", True), ("create_missing", True)]}),
+ # Menus
+ ("wm.context_menu_enum", {"type": 'E', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.sculpt.brush.stroke_method')]}),
+ ("wm.context_toggle", {"type": 'S', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path", 'tool_settings.sculpt.brush.use_smooth_stroke')]}),
+ op_menu("VIEW3D_MT_angle_control", {"type": 'R', "value": 'PRESS'}),
+ ])
+
+ return keymap
+
+
+# Mesh edit mode.
+def km_mesh(params):
+ items = []
+ keymap = (
+ "Mesh",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Tools.
+ ("mesh.loopcut_slide", {"type": 'R', "value": 'PRESS', "ctrl": True},
+ {"properties": [("TRANSFORM_OT_edge_slide", [("release_confirm", False), ],)]}),
+ ("mesh.offset_edge_loops_slide", {"type": 'R', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("TRANSFORM_OT_edge_slide", [("release_confirm", False), ],)]}),
+ ("mesh.inset", {"type": 'I', "value": 'PRESS'}, None),
+ ("mesh.bevel", {"type": 'B', "value": 'PRESS', "ctrl": True},
+ {"properties": [("vertex_only", False)]}),
+ ("mesh.bevel", {"type": 'B', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("vertex_only", True)]}),
+ # Selection modes.
+ # TODO: expand into loop.
+ ("mesh.select_mode", {"type": 'ONE', "value": 'PRESS'},
+ {"properties": [("type", 'VERT')]}),
+ ("mesh.select_mode", {"type": 'TWO', "value": 'PRESS'},
+ {"properties": [("type", 'EDGE')]}),
+ ("mesh.select_mode", {"type": 'THREE', "value": 'PRESS'},
+ {"properties": [("type", 'FACE')]}),
+ ("mesh.select_mode", {"type": 'ONE', "value": 'PRESS', "shift": True},
+ {"properties": [("use_extend", True), ("type", 'VERT')]}),
+ ("mesh.select_mode", {"type": 'TWO', "value": 'PRESS', "shift": True},
+ {"properties": [("use_extend", True), ("type", 'EDGE')]}),
+ ("mesh.select_mode", {"type": 'THREE', "value": 'PRESS', "shift": True},
+ {"properties": [("use_extend", True), ("type", 'FACE')]}),
+ ("mesh.select_mode", {"type": 'ONE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("use_expand", True), ("type", 'VERT')]}),
+ ("mesh.select_mode", {"type": 'TWO', "value": 'PRESS', "ctrl": True},
+ {"properties": [("use_expand", True), ("type", 'EDGE')]}),
+ ("mesh.select_mode", {"type": 'THREE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("use_expand", True), ("type", 'FACE')]}),
+ ("mesh.select_mode", {"type": 'ONE', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("use_extend", True), ("use_expand", True), ("type", 'VERT')]}),
+ ("mesh.select_mode", {"type": 'TWO', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("use_extend", True), ("use_expand", True), ("type", 'EDGE')]}),
+ ("mesh.select_mode", {"type": 'THREE', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("use_extend", True), ("use_expand", True), ("type", 'FACE')]}),
+ # Selection.
+ ("mesh.loop_select", {"type": params.select_mouse, "value": 'PRESS', "alt": True},
+ {"properties": [("extend", False), ("deselect", False), ("toggle", False)]}),
+ ("mesh.loop_select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "alt": True},
+ {"properties": [("extend", False), ("deselect", False), ("toggle", True)]}),
+ ("mesh.edgering_select", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("extend", False), ("deselect", False), ("toggle", False)]}),
+ ("mesh.edgering_select", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True, "alt": True},
+ {"properties": [("extend", False), ("deselect", False), ("toggle", True)]}),
+ ("mesh.shortest_path_pick", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True},
+ {"properties": [("use_fill", False)]}),
+ ("mesh.shortest_path_pick", {"type": params.select_mouse, "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("use_fill", True)]}),
+ *_template_items_select_actions("mesh.select_all"),
+ ("mesh.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
+ ("mesh.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
+ ("mesh.select_next_item", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("mesh.select_prev_item", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ ("mesh.select_linked", {"type": 'L', "value": 'PRESS', "ctrl": True}, None),
+ ("mesh.select_linked_pick", {"type": 'L', "value": 'PRESS'},
+ {"properties": [("deselect", False)]}),
+ ("mesh.select_linked_pick", {"type": 'L', "value": 'PRESS', "shift": True},
+ {"properties": [("deselect", True)]}),
+ ("mesh.select_mirror", {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True}, None),
+ op_menu("VIEW3D_MT_edit_mesh_select_similar", {"type": 'G', "value": 'PRESS', "shift": True}),
+ # Hide/reveal.
+ ("mesh.hide", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("mesh.hide", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ("mesh.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
+ # Tools.
+ ("mesh.normals_make_consistent", {"type": 'N', "value": 'PRESS', "ctrl" if params.legacy else "shift": True},
+ {"properties": [("inside", False)]}),
+ ("mesh.normals_make_consistent", {"type": 'N', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("inside", True)]}),
+ ("view3d.edit_mesh_extrude_move_normal", {"type": 'E', "value": 'PRESS'}, None),
+ op_menu("VIEW3D_MT_edit_mesh_extrude", {"type": 'E', "value": 'PRESS', "alt": True}),
+ ("transform.edge_crease", {"type": 'E', "value": 'PRESS', "shift": True}, None),
+ ("mesh.fill", {"type": 'F', "value": 'PRESS', "alt": True}, None),
+ ("mesh.quads_convert_to_tris", {"type": 'T', "value": 'PRESS', "ctrl": True},
+ {"properties": [("quad_method", 'BEAUTY'), ("ngon_method", 'BEAUTY')]}),
+ ("mesh.quads_convert_to_tris", {"type": 'T', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("quad_method", 'FIXED'), ("ngon_method", 'CLIP')]}),
+ ("mesh.tris_convert_to_quads", {"type": 'J', "value": 'PRESS', "alt": True}, None),
+ ("mesh.rip_move", {"type": 'V', "value": 'PRESS'},
+ {"properties": [("MESH_OT_rip", [("use_fill", False), ],)]}),
+ ("mesh.rip_move", {"type": 'V', "value": 'PRESS', "alt": True},
+ {"properties": [("MESH_OT_rip", [("use_fill", True), ],)]}),
+ ("mesh.rip_edge_move", {"type": 'D', "value": 'PRESS', "alt": True}, None),
+ ("mesh.merge", {"type": 'M', "value": 'PRESS', "alt": True}, None),
+ ("transform.shrink_fatten", {"type": 'S', "value": 'PRESS', "alt": True}, None),
+ ("mesh.edge_face_add", {"type": 'F', "value": 'PRESS'}, None),
+ ("mesh.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
+ op_menu("VIEW3D_MT_mesh_add", {"type": 'A', "value": 'PRESS', "shift": True}),
+ ("mesh.separate", {"type": 'P', "value": 'PRESS'}, None),
+ ("mesh.split", {"type": 'Y', "value": 'PRESS'}, None),
+ ("mesh.vert_connect_path", {"type": 'J', "value": 'PRESS'}, None),
+ ("mesh.point_normals", {"type": 'L', "value": 'PRESS', "alt": True}, None),
+ ("transform.vert_slide", {"type": 'V', "value": 'PRESS', "shift": True}, None),
+ ("mesh.dupli_extrude_cursor", {"type": params.action_mouse, "value": 'CLICK', "ctrl": True},
+ {"properties": [("rotate_source", True)]}),
+ ("mesh.dupli_extrude_cursor", {"type": params.action_mouse, "value": 'CLICK', "shift": True, "ctrl": True},
+ {"properties": [("rotate_source", False)]}),
+ op_menu("VIEW3D_MT_edit_mesh_delete", {"type": 'X', "value": 'PRESS'}),
+ op_menu("VIEW3D_MT_edit_mesh_delete", {"type": 'DEL', "value": 'PRESS'}),
+ ("mesh.dissolve_mode", {"type": 'X', "value": 'PRESS', "ctrl": True}, None),
+ ("mesh.dissolve_mode", {"type": 'DEL', "value": 'PRESS', "ctrl": True}, None),
+ ("mesh.knife_tool", {"type": 'K', "value": 'PRESS'},
+ {"properties": [("use_occlude_geometry", True), ("only_selected", False)]}),
+ ("object.vertex_parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
+ # Menus.
+ op_menu("VIEW3D_MT_edit_mesh_specials", {"type": 'W', "value": 'PRESS'}),
+ op_menu("VIEW3D_MT_edit_mesh_faces", {"type": 'F', "value": 'PRESS', "ctrl": True}),
+ op_menu("VIEW3D_MT_edit_mesh_edges", {"type": 'E', "value": 'PRESS', "ctrl": True}),
+ op_menu("VIEW3D_MT_edit_mesh_vertices", {"type": 'V', "value": 'PRESS', "ctrl": True}),
+ op_menu("VIEW3D_MT_hook", {"type": 'H', "value": 'PRESS', "ctrl": True}),
+ op_menu("VIEW3D_MT_uv_map", {"type": 'U', "value": 'PRESS'}),
+ op_menu("VIEW3D_MT_vertex_group", {"type": 'G', "value": 'PRESS', "ctrl": True}),
+ ("object.vertex_group_remove_from", {"type": 'G', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ op_menu("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
+ ("wm.context_toggle_enum", {"type": 'O', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.proportional_edit'), ("value_1", 'DISABLED'), ("value_2", 'ENABLED')]}),
+ ("wm.context_toggle_enum", {"type": 'O', "value": 'PRESS', "alt": True},
+ {"properties": [("data_path", 'tool_settings.proportional_edit'), ("value_1", 'DISABLED'), ("value_2", 'CONNECTED')]}),
+ ])
+
+ if params.legacy:
+ items.extend([
+ ("mesh.poke", {"type": 'P', "value": 'PRESS', "alt": True}, None),
+ ("mesh.select_non_manifold", {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
+ ("mesh.faces_select_linked_flat", {"type": 'F', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
+ ("mesh.spin", {"type": 'R', "value": 'PRESS', "alt": True}, None),
+ ("mesh.beautify_fill", {"type": 'F', "value": 'PRESS', "shift": True, "alt": True}, None),
+ ("mesh.knife_tool", {"type": 'K', "value": 'PRESS', "shift": True},
+ {"properties": [("use_occlude_geometry", False), ("only_selected", True)]}),
+ # TODO: expand into loop.
+ ("object.subdivision_set", {"type": 'ZERO', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 0)]}),
+ ("object.subdivision_set", {"type": 'ONE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 1)]}),
+ ("object.subdivision_set", {"type": 'TWO', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 2)]}),
+ ("object.subdivision_set", {"type": 'THREE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 3)]}),
+ ("object.subdivision_set", {"type": 'FOUR', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 4)]}),
+ ("object.subdivision_set", {"type": 'FIVE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("level", 5)]}),
+ ])
+
+ return keymap
+
+
+# Armature edit mode
+def km_armature(params):
+ items = []
+ keymap = (
+ "Armature",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ # Hide/reveal.
+ ("armature.hide", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("armature.hide", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ("armature.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
+ # Align & roll.
+ ("armature.align", {"type": 'A', "value": 'PRESS', "ctrl": True, "alt": True}, None),
+ ("armature.calculate_roll", {"type": 'N', "value": 'PRESS', "ctrl" if params.legacy else "shift": True}, None),
+ ("armature.roll_clear", {"type": 'R', "value": 'PRESS', "alt": True}, None),
+ ("armature.switch_direction", {"type": 'F', "value": 'PRESS', "alt": True}, None),
+ # Add.
+ ("armature.bone_primitive_add", {"type": 'A', "value": 'PRESS', "shift": True}, None),
+ # Parenting.
+ ("armature.parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
+ ("armature.parent_clear", {"type": 'P', "value": 'PRESS', "alt": True}, None),
+ # Selection.
+ *_template_items_select_actions("armature.select_all"),
+ ("armature.select_mirror", {"type": 'M', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("extend", False)]}),
+ ("armature.select_hierarchy", {"type": 'LEFT_BRACKET', "value": 'PRESS'},
+ {"properties": [("direction", 'PARENT'), ("extend", False)]}),
+ ("armature.select_hierarchy", {"type": 'LEFT_BRACKET', "value": 'PRESS', "shift": True},
+ {"properties": [("direction", 'PARENT'), ("extend", True)]}),
+ ("armature.select_hierarchy", {"type": 'RIGHT_BRACKET', "value": 'PRESS'},
+ {"properties": [("direction", 'CHILD'), ("extend", False)]}),
+ ("armature.select_hierarchy", {"type": 'RIGHT_BRACKET', "value": 'PRESS', "shift": True},
+ {"properties": [("direction", 'CHILD'), ("extend", True)]}),
+ ("armature.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
+ ("armature.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
+ ("armature.select_similar", {"type": 'G', "value": 'PRESS', "shift": True}, None),
+ ("armature.select_linked", {"type": 'L', "value": 'PRESS'}, None),
+ ("armature.shortest_path_pick", {"type": params.select_mouse, "value": 'PRESS', "ctrl": True}, None),
+ # Editing.
+ op_menu("VIEW3D_MT_edit_armature_delete", {"type": 'X', "value": 'PRESS'}),
+ op_menu("VIEW3D_MT_edit_armature_delete", {"type": 'DEL', "value": 'PRESS'}),
+ ("armature.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
+ ("armature.dissolve", {"type": 'X', "value": 'PRESS', "ctrl": True}, None),
+ ("armature.dissolve", {"type": 'DEL', "value": 'PRESS', "ctrl": True}, None),
+ ("armature.extrude_move", {"type": 'E', "value": 'PRESS'}, None),
+ ("armature.extrude_forked", {"type": 'E', "value": 'PRESS', "shift": True}, None),
+ ("armature.click_extrude", {"type": params.action_mouse, "value": 'CLICK', "ctrl": True}, None),
+ ("armature.fill", {"type": 'F', "value": 'PRESS'}, None),
+ ("armature.merge", {"type": 'M', "value": 'PRESS', "alt": True}, None),
+ ("armature.split", {"type": 'Y', "value": 'PRESS'}, None),
+ ("armature.separate", {"type": 'P', "value": 'PRESS'}, None),
+ # Set flags.
+ op_menu("VIEW3D_MT_bone_options_toggle", {"type": 'W', "value": 'PRESS', "shift": True}),
+ op_menu("VIEW3D_MT_bone_options_enable", {"type": 'W', "value": 'PRESS', "shift": True, "ctrl": True}),
+ op_menu("VIEW3D_MT_bone_options_disable", {"type": 'W', "value": 'PRESS', "alt": True}),
+ # Armature/bone layers.
+ ("armature.layers_show_all", {"type": 'ACCENT_GRAVE', "value": 'PRESS', "ctrl": True}, None),
+ ("armature.armature_layers", {"type": 'M', "value": 'PRESS', "shift": True}, None),
+ ("armature.bone_layers", {"type": 'M', "value": 'PRESS'}, None),
+ # Special transforms.
+ ("transform.transform", {"type": 'S', "value": 'PRESS', "ctrl": True, "alt": True},
+ {"properties": [("mode", 'BONE_SIZE')]}),
+ ("transform.transform", {"type": 'S', "value": 'PRESS', "alt": True},
+ {"properties": [("mode", 'BONE_ENVELOPE')]}),
+ ("transform.transform", {"type": 'R', "value": 'PRESS', "ctrl": True},
+ {"properties": [("mode", 'BONE_ROLL')]}),
+ # Menus.
+ op_menu("VIEW3D_MT_armature_specials", {"type": 'W', "value": 'PRESS'}),
+ ])
+
+ return keymap
+
+
+# Metaball edit mode.
+def km_metaball(_params):
+ items = []
+ keymap = (
+ "Metaball",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("object.metaball_add", {"type": 'A', "value": 'PRESS', "shift": True}, None),
+ ("mball.reveal_metaelems", {"type": 'H', "value": 'PRESS', "alt": True}, None),
+ ("mball.hide_metaelems", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("mball.hide_metaelems", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ("mball.delete_metaelems", {"type": 'X', "value": 'PRESS'}, None),
+ ("mball.delete_metaelems", {"type": 'DEL', "value": 'PRESS'}, None),
+ ("mball.duplicate_move", {"type": 'D', "value": 'PRESS', "shift": True}, None),
+ *_template_items_select_actions("mball.select_all"),
+ ("mball.select_similar", {"type": 'G', "value": 'PRESS', "shift": True}, None),
+ op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
+ ("wm.context_toggle_enum", {"type": 'O', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.proportional_edit'), ("value_1", 'DISABLED'), ("value_2", 'ENABLED')]}),
+ ("wm.context_toggle_enum", {"type": 'O', "value": 'PRESS', "alt": True},
+ {"properties": [("data_path", 'tool_settings.proportional_edit'), ("value_1", 'DISABLED'), ("value_2", 'CONNECTED')]}),
+ ])
+
+ return keymap
+
+
+# Lattice edit mode.
+def km_lattice(_params):
+ items = []
+ keymap = (
+ "Lattice",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ *_template_items_select_actions("lattice.select_all"),
+ ("lattice.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
+ ("lattice.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
+ ("object.vertex_parent_set", {"type": 'P', "value": 'PRESS', "ctrl": True}, None),
+ ("lattice.flip", {"type": 'F', "value": 'PRESS', "alt": True}, None),
+ op_menu("VIEW3D_MT_hook", {"type": 'H', "value": 'PRESS', "ctrl": True}),
+ op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
+ ("wm.context_toggle_enum", {"type": 'O', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.proportional_edit'), ("value_1", 'DISABLED'), ("value_2", 'ENABLED')]}),
+ ])
+
+ return keymap
+
+
+# Particle edit mode.
+def km_particle(_params):
+ items = []
+ keymap = (
+ "Particle",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ *_template_items_select_actions("particle.select_all"),
+ ("particle.select_more", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "ctrl": True}, None),
+ ("particle.select_less", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "ctrl": True}, None),
+ ("particle.select_linked", {"type": 'L', "value": 'PRESS'},
+ {"properties": [("deselect", False)]}),
+ ("particle.select_linked", {"type": 'L', "value": 'PRESS', "shift": True},
+ {"properties": [("deselect", True)]}),
+ ("particle.delete", {"type": 'X', "value": 'PRESS'}, None),
+ ("particle.delete", {"type": 'DEL', "value": 'PRESS'}, None),
+ ("particle.reveal", {"type": 'H', "value": 'PRESS', "alt": True}, None),
+ ("particle.hide", {"type": 'H', "value": 'PRESS'},
+ {"properties": [("unselected", False)]}),
+ ("particle.hide", {"type": 'H', "value": 'PRESS', "shift": True},
+ {"properties": [("unselected", True)]}),
+ ("particle.brush_edit", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("particle.brush_edit", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True}, None),
+ ("wm.radial_control", {"type": 'F', "value": 'PRESS'},
+ {"properties": [("data_path_primary", 'tool_settings.particle_edit.brush.size')]}),
+ ("wm.radial_control", {"type": 'F', "value": 'PRESS', "shift": True},
+ {"properties": [("data_path_primary", 'tool_settings.particle_edit.brush.strength')]}),
+ op_menu("VIEW3D_MT_particle_specials", {"type": 'W', "value": 'PRESS'}),
+ ("particle.weight_set", {"type": 'K', "value": 'PRESS', "shift": True}, None),
+ op_menu_pie("VIEW3D_MT_proportional_editing_falloff_pie", {"type": 'O', "value": 'PRESS', "shift": True}),
+ ("wm.context_toggle_enum", {"type": 'O', "value": 'PRESS'},
+ {"properties": [("data_path", 'tool_settings.proportional_edit'), ("value_1", 'DISABLED'), ("value_2", 'ENABLED')]}),
+ ])
+
+ return keymap
+
+
+# Text edit mode.
+def km_font(params):
+ items = []
+ keymap = (
+ "Font",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("font.style_toggle", {"type": 'B', "value": 'PRESS', "ctrl": True},
+ {"properties": [("style", 'BOLD')]}),
+ ("font.style_toggle", {"type": 'I', "value": 'PRESS', "ctrl": True},
+ {"properties": [("style", 'ITALIC')]}),
+ ("font.style_toggle", {"type": 'U', "value": 'PRESS', "ctrl": True},
+ {"properties": [("style", 'UNDERLINE')]}),
+ ("font.style_toggle", {"type": 'P', "value": 'PRESS', "ctrl": True},
+ {"properties": [("style", 'SMALL_CAPS')]}),
+ ("font.delete", {"type": 'DEL', "value": 'PRESS'},
+ {"properties": [("type", 'NEXT_OR_SELECTION')]}),
+ ("font.delete", {"type": 'DEL', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'NEXT_WORD')]}),
+ ("font.delete", {"type": 'BACK_SPACE', "value": 'PRESS'},
+ {"properties": [("type", 'PREVIOUS_OR_SELECTION')]}),
+ ("font.delete", {"type": 'BACK_SPACE', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'PREVIOUS_OR_SELECTION')]}),
+ ("font.delete", {"type": 'BACK_SPACE', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'PREVIOUS_WORD')]}),
+ ("font.move", {"type": 'HOME', "value": 'PRESS'},
+ {"properties": [("type", 'LINE_BEGIN')]}),
+ ("font.move", {"type": 'END', "value": 'PRESS'},
+ {"properties": [("type", 'LINE_END')]}),
+ ("font.move", {"type": 'LEFT_ARROW', "value": 'PRESS'},
+ {"properties": [("type", 'PREVIOUS_CHARACTER')]}),
+ ("font.move", {"type": 'RIGHT_ARROW', "value": 'PRESS'},
+ {"properties": [("type", 'NEXT_CHARACTER')]}),
+ ("font.move", {"type": 'LEFT_ARROW', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'PREVIOUS_WORD')]}),
+ ("font.move", {"type": 'RIGHT_ARROW', "value": 'PRESS', "ctrl": True},
+ {"properties": [("type", 'NEXT_WORD')]}),
+ ("font.move", {"type": 'UP_ARROW', "value": 'PRESS'},
+ {"properties": [("type", 'PREVIOUS_LINE')]}),
+ ("font.move", {"type": 'DOWN_ARROW', "value": 'PRESS'},
+ {"properties": [("type", 'NEXT_LINE')]}),
+ ("font.move", {"type": 'PAGE_UP', "value": 'PRESS'},
+ {"properties": [("type", 'PREVIOUS_PAGE')]}),
+ ("font.move", {"type": 'PAGE_DOWN', "value": 'PRESS'},
+ {"properties": [("type", 'NEXT_PAGE')]}),
+ ("font.move_select", {"type": 'HOME', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'LINE_BEGIN')]}),
+ ("font.move_select", {"type": 'END', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'LINE_END')]}),
+ ("font.move_select", {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'PREVIOUS_CHARACTER')]}),
+ ("font.move_select", {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'NEXT_CHARACTER')]}),
+ ("font.move_select", {"type": 'LEFT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("type", 'PREVIOUS_WORD')]}),
+ ("font.move_select", {"type": 'RIGHT_ARROW', "value": 'PRESS', "shift": True, "ctrl": True},
+ {"properties": [("type", 'NEXT_WORD')]}),
+ ("font.move_select", {"type": 'UP_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'PREVIOUS_LINE')]}),
+ ("font.move_select", {"type": 'DOWN_ARROW', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'NEXT_LINE')]}),
+ ("font.move_select", {"type": 'PAGE_UP', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'PREVIOUS_PAGE')]}),
+ ("font.move_select", {"type": 'PAGE_DOWN', "value": 'PRESS', "shift": True},
+ {"properties": [("type", 'NEXT_PAGE')]}),
+ ("font.change_spacing", {"type": 'LEFT_ARROW', "value": 'PRESS', "alt": True},
+ {"properties": [("delta", -1)]}),
+ ("font.change_spacing", {"type": 'RIGHT_ARROW', "value": 'PRESS', "alt": True},
+ {"properties": [("delta", 1)]}),
+ ("font.change_character", {"type": 'UP_ARROW', "value": 'PRESS', "alt": True},
+ {"properties": [("delta", 1)]}),
+ ("font.change_character", {"type": 'DOWN_ARROW', "value": 'PRESS', "alt": True},
+ {"properties": [("delta", -1)]}),
+ ("font.select_all", {"type": 'A', "value": 'PRESS', "ctrl": True}, None),
+ ("font.text_copy", {"type": 'C', "value": 'PRESS', "ctrl": True}, None),
+ ("font.text_cut", {"type": 'X', "value": 'PRESS', "ctrl": True}, None),
+ ("font.text_paste", {"type": 'V', "value": 'PRESS', "ctrl": True}, None),
+ ("font.line_break", {"type": 'RET', "value": 'PRESS'}, None),
+ ("font.text_insert", {"type": 'TEXTINPUT', "value": 'ANY', "any": True}, None),
+ ("font.text_insert", {"type": 'BACK_SPACE', "value": 'PRESS', "alt": True},
+ {"properties": [("accent", True)]}),
+ ])
+
+ if params.apple:
+ items.extend([
+ ("font.select_all", {"type": 'A', "value": 'PRESS', "oskey": True}, None),
+ ("font.text_copy", {"type": 'C', "value": 'PRESS', "oskey": True}, None),
+ ("font.text_cut", {"type": 'X', "value": 'PRESS', "oskey": True}, None),
+ ("font.text_paste", {"type": 'V', "value": 'PRESS', "oskey": True}, None),
+ ])
+
+ return keymap
+
+
+def km_object_non_modal(params):
+ items = []
+ keymap = (
+ "Object Non-modal",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("object.mode_set", {"type": 'TAB', "value": 'PRESS'},
+ {"properties": [("mode", 'EDIT'), ("toggle", True)]}),
+ ("view3d.object_mode_pie_or_toggle", {"type": 'TAB', "value": 'PRESS', "ctrl": True}, None),
+ ])
+
+ if params.legacy:
+ items.extend([
+ ("object.origin_set", {"type": 'C', "value": 'PRESS', "shift": True, "ctrl": True, "alt": True}, None),
+ ])
+
+ return keymap
+
+
+# ------------------------------------------------------------------------------
+# Modal Maps and Gizmos
+
+
+def km_eyedropper_modal_map(_params):
+ items = []
+ keymap = (
+ "Eyedropper Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CANCEL", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ("CANCEL", {"type": 'RIGHTMOUSE', "value": 'PRESS', "any": True}, None),
+ ("SAMPLE_CONFIRM", {"type": 'RET', "value": 'RELEASE', "any": True}, None),
+ ("SAMPLE_CONFIRM", {"type": 'NUMPAD_ENTER', "value": 'RELEASE', "any": True}, None),
+ ("SAMPLE_CONFIRM", {"type": 'LEFTMOUSE', "value": 'RELEASE', "any": True}, None),
+ ("SAMPLE_BEGIN", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ("SAMPLE_RESET", {"type": 'SPACE', "value": 'RELEASE', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_eyedropper_colorband_pointsampling_map(_params):
+ items = []
+ keymap = (
+ "Eyedropper ColorBand PointSampling Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CANCEL", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ("CANCEL", {"type": 'BACK_SPACE', "value": 'PRESS', "any": True}, None),
+ ("SAMPLE_CONFIRM", {"type": 'RIGHTMOUSE', "value": 'PRESS', "any": True}, None),
+ ("SAMPLE_CONFIRM", {"type": 'RET', "value": 'RELEASE', "any": True}, None),
+ ("SAMPLE_CONFIRM", {"type": 'NUMPAD_ENTER', "value": 'RELEASE', "any": True}, None),
+ ("SAMPLE_SAMPLE", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ("SAMPLE_RESET", {"type": 'SPACE', "value": 'RELEASE', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_transform_modal_map(_params):
+ items = []
+ keymap = (
+ "Transform Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CONFIRM", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'RET', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'NUMPAD_ENTER', "value": 'PRESS', "any": True}, None),
+ ("CANCEL", {"type": 'RIGHTMOUSE', "value": 'PRESS', "any": True}, None),
+ ("CANCEL", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ("AXIS_X", {"type": 'X', "value": 'PRESS'}, None),
+ ("AXIS_Y", {"type": 'Y', "value": 'PRESS'}, None),
+ ("AXIS_Z", {"type": 'Z', "value": 'PRESS'}, None),
+ ("PLANE_X", {"type": 'X', "value": 'PRESS', "shift": True}, None),
+ ("PLANE_Y", {"type": 'Y', "value": 'PRESS', "shift": True}, None),
+ ("PLANE_Z", {"type": 'Z', "value": 'PRESS', "shift": True}, None),
+ ("CONS_OFF", {"type": 'C', "value": 'PRESS'}, None),
+ ("TRANSLATE", {"type": 'G', "value": 'PRESS'}, None),
+ ("ROTATE", {"type": 'R', "value": 'PRESS'}, None),
+ ("RESIZE", {"type": 'S', "value": 'PRESS'}, None),
+ ("SNAP_TOGGLE", {"type": 'TAB', "value": 'PRESS', "shift": True}, None),
+ ("SNAP_INV_ON", {"type": 'LEFT_CTRL', "value": 'PRESS', "any": True}, None),
+ ("SNAP_INV_OFF", {"type": 'LEFT_CTRL', "value": 'RELEASE', "any": True}, None),
+ ("SNAP_INV_ON", {"type": 'RIGHT_CTRL', "value": 'PRESS', "any": True}, None),
+ ("SNAP_INV_OFF", {"type": 'RIGHT_CTRL', "value": 'RELEASE', "any": True}, None),
+ ("ADD_SNAP", {"type": 'A', "value": 'PRESS'}, None),
+ ("REMOVE_SNAP", {"type": 'A', "value": 'PRESS', "alt": True}, None),
+ ("PROPORTIONAL_SIZE_UP", {"type": 'PAGE_UP', "value": 'PRESS'}, None),
+ ("PROPORTIONAL_SIZE_DOWN", {"type": 'PAGE_DOWN', "value": 'PRESS'}, None),
+ ("PROPORTIONAL_SIZE_UP", {"type": 'PAGE_UP', "value": 'PRESS', "shift": True}, None),
+ ("PROPORTIONAL_SIZE_DOWN", {"type": 'PAGE_DOWN', "value": 'PRESS', "shift": True}, None),
+ ("PROPORTIONAL_SIZE_UP", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS'}, None),
+ ("PROPORTIONAL_SIZE_DOWN", {"type": 'WHEELUPMOUSE', "value": 'PRESS'}, None),
+ ("PROPORTIONAL_SIZE_UP", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "shift": True}, None),
+ ("PROPORTIONAL_SIZE_DOWN", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "shift": True}, None),
+ ("PROPORTIONAL_SIZE", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
+ ("EDGESLIDE_EDGE_NEXT", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "alt": True}, None),
+ ("EDGESLIDE_PREV_NEXT", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "alt": True}, None),
+ ("AUTOIK_CHAIN_LEN_UP", {"type": 'PAGE_UP', "value": 'PRESS', "shift": True}, None),
+ ("AUTOIK_CHAIN_LEN_DOWN", {"type": 'PAGE_DOWN', "value": 'PRESS', "shift": True}, None),
+ ("AUTOIK_CHAIN_LEN_UP", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "shift": True}, None),
+ ("AUTOIK_CHAIN_LEN_DOWN", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "shift": True}, None),
+ ("INSERTOFS_TOGGLE_DIR", {"type": 'T', "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+def km_backdrop_transform_widget_tweak_modal_map(_params):
+ keymap = (
+ "Backdrop Transform Widget Tweak Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": _template_items_gizmo_tweak_modal()},
+ )
+ return keymap
+
+
+def km_backdrop_crop_widget(_params):
+ keymap = (
+ "Backdrop Crop Widget",
+ {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'},
+ {"items": _template_items_gizmo_tweak_value()},
+ )
+ return keymap
+
+
+def km_backdrop_crop_widget_tweak_modal_map(_params):
+ keymap = (
+ "Backdrop Crop Widget Tweak Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": _template_items_gizmo_tweak_modal()},
+ )
+ return keymap
+
+
+def km_sun_beams_widget(_params):
+ keymap = (
+ "Sun Beams Widget",
+ {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'},
+ {"items": _template_items_gizmo_tweak_value()},
+ )
+ return keymap
+
+
+def km_sun_beams_widget_tweak_modal_map(_params):
+ keymap = (
+ "Sun Beams Widget Tweak Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": _template_items_gizmo_tweak_modal()},
+ )
+ return keymap
+
+
+def km_corner_pin_widget(_params):
+ items = []
+ keymap = (
+ "Corner Pin Widget",
+ {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_corner_pin_widget_tweak_modal_map(_params):
+ keymap = (
+ "Corner Pin Widget Tweak Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": _template_items_gizmo_tweak_modal()},
+ )
+ return keymap
+
+
+def km_uv_transform_gizmo(_params):
+ keymap = (
+ "UV Transform Gizmo",
+ {"space_type": 'IMAGE_EDITOR', "region_type": 'WINDOW'},
+ {"items": _template_items_gizmo_tweak_value()},
+ )
+ return keymap
+
+
+def km_uv_transform_gizmo_tweak_modal_map(_params):
+ keymap = (
+ "UV Transform Gizmo Tweak Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": _template_items_gizmo_tweak_modal()},
+ )
+ return keymap
+
+
+def km_spot_light_widgets(_params):
+ items = []
+ keymap = (
+ "Spot Light Widgets",
+ {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_spot_light_widgets_tweak_modal_map(_params):
+ keymap = (
+ "Spot Light Widgets Tweak Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": _template_items_gizmo_tweak_modal()},
+ )
+ return keymap
+
+
+def km_area_light_widgets(_params):
+ items = []
+ keymap = (
+ "Area Light Widgets",
+ {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_area_light_widgets_tweak_modal_map(_params):
+ keymap = (
+ "Area Light Widgets Tweak Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": _template_items_gizmo_tweak_modal()},
+ )
+ return keymap
+
+
+def km_target_light_widgets(_params):
+ items = []
+ keymap = (
+ "Target Light Widgets",
+ {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_target_light_widgets_tweak_modal_map(_params):
+ keymap = (
+ "Target Light Widgets Tweak Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": _template_items_gizmo_tweak_modal()},
+ )
+ return keymap
+
+
+def km_force_field_widgets(_params):
+ items = []
+ keymap = (
+ "Force Field Widgets",
+ {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_force_field_widgets_tweak_modal_map(_params):
+ keymap = (
+ "Force Field Widgets Tweak Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": _template_items_gizmo_tweak_modal()},
+ )
+ return keymap
+
+
+def km_camera_widgets(_params):
+ items = []
+ keymap = (
+ "Camera Widgets",
+ {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_camera_widgets_tweak_modal_map(_params):
+ keymap = (
+ "Camera Widgets Tweak Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": _template_items_gizmo_tweak_modal()},
+ )
+ return keymap
+
+
+def km_camera_view_widgets(_params):
+ items = []
+ keymap = (
+ "Camera View Widgets",
+ {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_camera_view_widgets_tweak_modal_map(_params):
+ keymap = (
+ "Camera View Widgets Tweak Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": _template_items_gizmo_tweak_modal()},
+ )
+ return keymap
+
+
+def km_armature_spline_widgets(_params):
+ items = []
+ keymap = (
+ "Armature Spline Widgets",
+ {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_armature_spline_widgets_tweak_modal_map(_params):
+ keymap = (
+ "Armature Spline Widgets Tweak Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": _template_items_gizmo_tweak_modal()},
+ )
+ return keymap
+
+
+def km_view3d_navigate(_params):
+ items = []
+ keymap = (
+ "View3D Navigate",
+ {"space_type": 'VIEW_3D', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_view3d_navigate_tweak_modal_map(_params):
+ keymap = (
+ "View3D Navigate Tweak Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": _template_items_gizmo_tweak_modal()},
+ )
+ return keymap
+
+
+def km_view3d_gesture_circle(_params):
+ items = []
+ keymap = (
+ "View3D Gesture Circle",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ # Note: use 'KM_ANY' for release, so the circle exits on any mouse release,
+ # this is needed when circle select is activated as a tool.
+ ("CANCEL", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ("CANCEL", {"type": 'RIGHTMOUSE', "value": 'ANY', "any": True}, None),
+ ("CONFIRM", {"type": 'RET', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'NUMPAD_ENTER', "value": 'PRESS'}, None),
+ ("SELECT", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("DESELECT", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True}, None),
+ ("NOP", {"type": 'LEFTMOUSE', "value": 'RELEASE', "any": True}, None),
+ ("DESELECT", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
+ ("NOP", {"type": 'MIDDLEMOUSE', "value": 'RELEASE', "any": True}, None),
+ ("SUBTRACT", {"type": 'WHEELUPMOUSE', "value": 'PRESS'}, None),
+ ("SUBTRACT", {"type": 'NUMPAD_MINUS', "value": 'PRESS'}, None),
+ ("ADD", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS'}, None),
+ ("ADD", {"type": 'NUMPAD_PLUS', "value": 'PRESS'}, None),
+ ("SIZE", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
+ ])
+
+ return keymap
+
+
+def km_gesture_border(_params):
+ items = []
+ keymap = (
+ "Gesture Box",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CANCEL", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ("CANCEL", {"type": 'RIGHTMOUSE', "value": 'PRESS', "any": True}, None),
+ ("SELECT", {"type": 'RIGHTMOUSE', "value": 'RELEASE', "any": True}, None),
+ ("BEGIN", {"type": 'LEFTMOUSE', "value": 'PRESS', "shift": True}, None),
+ ("DESELECT", {"type": 'LEFTMOUSE', "value": 'RELEASE', "shift": True}, None),
+ ("BEGIN", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("SELECT", {"type": 'LEFTMOUSE', "value": 'RELEASE', "any": True}, None),
+ ("BEGIN", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
+ ("DESELECT", {"type": 'MIDDLEMOUSE', "value": 'RELEASE'}, None),
+ ])
+
+ return keymap
+
+
+def km_gesture_zoom_border(_params):
+ items = []
+ keymap = (
+ "Gesture Zoom Border",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CANCEL", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ("CANCEL", {"type": 'RIGHTMOUSE', "value": 'ANY', "any": True}, None),
+ ("BEGIN", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("IN", {"type": 'LEFTMOUSE', "value": 'RELEASE'}, None),
+ ("BEGIN", {"type": 'MIDDLEMOUSE', "value": 'PRESS'}, None),
+ ("OUT", {"type": 'MIDDLEMOUSE', "value": 'RELEASE'}, None),
+ ])
+
+ return keymap
+
+
+def km_gesture_straight_line(_params):
+ items = []
+ keymap = (
+ "Gesture Straight Line",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CANCEL", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ("CANCEL", {"type": 'RIGHTMOUSE', "value": 'ANY', "any": True}, None),
+ ("BEGIN", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("SELECT", {"type": 'LEFTMOUSE', "value": 'RELEASE', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_standard_modal_map(_params):
+ items = []
+ keymap = (
+ "Standard Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CANCEL", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ("APPLY", {"type": 'LEFTMOUSE', "value": 'ANY', "any": True}, None),
+ ("APPLY", {"type": 'RET', "value": 'PRESS', "any": True}, None),
+ ("APPLY", {"type": 'NUMPAD_ENTER', "value": 'PRESS', "any": True}, None),
+ ("SNAP", {"type": 'LEFT_CTRL', "value": 'PRESS', "any": True}, None),
+ ("SNAP_OFF", {"type": 'LEFT_CTRL', "value": 'RELEASE', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_knife_tool_modal_map(_params):
+ items = []
+ keymap = (
+ "Knife Tool Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CANCEL", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ("PANNING", {"type": 'MIDDLEMOUSE', "value": 'ANY', "any": True}, None),
+ ("CANCEL", {"type": 'LEFTMOUSE', "value": 'DOUBLE_CLICK', "any": True}, None),
+ ("ADD_CUT", {"type": 'LEFTMOUSE', "value": 'ANY', "any": True}, None),
+ ("CANCEL", {"type": 'RIGHTMOUSE', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'RET', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'NUMPAD_ENTER', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'SPACE', "value": 'PRESS', "any": True}, None),
+ ("NEW_CUT", {"type": 'E', "value": 'PRESS'}, None),
+ ("SNAP_MIDPOINTS_ON", {"type": 'LEFT_CTRL', "value": 'PRESS', "any": True}, None),
+ ("SNAP_MIDPOINTS_OFF", {"type": 'LEFT_CTRL', "value": 'RELEASE', "any": True}, None),
+ ("SNAP_MIDPOINTS_ON", {"type": 'RIGHT_CTRL', "value": 'PRESS', "any": True}, None),
+ ("SNAP_MIDPOINTS_OFF", {"type": 'RIGHT_CTRL', "value": 'RELEASE', "any": True}, None),
+ ("IGNORE_SNAP_ON", {"type": 'LEFT_SHIFT', "value": 'PRESS', "any": True}, None),
+ ("IGNORE_SNAP_OFF", {"type": 'LEFT_SHIFT', "value": 'RELEASE', "any": True}, None),
+ ("IGNORE_SNAP_ON", {"type": 'RIGHT_SHIFT', "value": 'PRESS', "any": True}, None),
+ ("IGNORE_SNAP_OFF", {"type": 'RIGHT_SHIFT', "value": 'RELEASE', "any": True}, None),
+ ("ANGLE_SNAP_TOGGLE", {"type": 'C', "value": 'PRESS'}, None),
+ ("CUT_THROUGH_TOGGLE", {"type": 'Z', "value": 'PRESS'}, None),
+ ])
+
+ return keymap
+
+
+def km_custom_normals_modal_map(_params):
+ items = []
+ keymap = (
+ "Custom Normals Modal Map",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CANCEL", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ("CANCEL", {"type": 'RIGHTMOUSE', "value": 'PRESS'}, None),
+ ("CONFIRM", {"type": 'RET', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'NUMPAD_ENTER', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'LEFTMOUSE', "value": 'PRESS'}, None),
+ ("RESET", {"type": 'R', "value": 'PRESS'}, None),
+ ("INVERT", {"type": 'I', "value": 'PRESS'}, None),
+ ("SPHERIZE", {"type": 'S', "value": 'PRESS'}, None),
+ ("ALIGN", {"type": 'A', "value": 'PRESS'}, None),
+ ("USE_MOUSE", {"type": 'M', "value": 'PRESS'}, None),
+ ("USE_PIVOT", {"type": 'L', "value": 'PRESS'}, None),
+ ("USE_OBJECT", {"type": 'O', "value": 'PRESS'}, None),
+ ("SET_USE_3DCURSOR", {"type": 'LEFTMOUSE', "value": 'CLICK', "ctrl": True}, None),
+ ("SET_USE_SELECTED", {"type": 'RIGHTMOUSE', "value": 'CLICK', "ctrl": True}, None),
+ ])
+
+ return keymap
+
+
+def km_view3d_fly_modal(_params):
+ items = []
+ keymap = (
+ "View3D Fly Modal",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CANCEL", {"type": 'RIGHTMOUSE', "value": 'ANY', "any": True}, None),
+ ("CANCEL", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'LEFTMOUSE', "value": 'ANY', "any": True}, None),
+ ("CONFIRM", {"type": 'RET', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'SPACE', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'NUMPAD_ENTER', "value": 'PRESS', "any": True}, None),
+ ("ACCELERATE", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "any": True}, None),
+ ("DECELERATE", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "any": True}, None),
+ ("ACCELERATE", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "any": True}, None),
+ ("DECELERATE", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'TRACKPADPAN', "value": 'ANY'}, None),
+ ("PAN_ENABLE", {"type": 'MIDDLEMOUSE', "value": 'PRESS', "any": True}, None),
+ ("PAN_DISABLE", {"type": 'MIDDLEMOUSE', "value": 'RELEASE', "any": True}, None),
+ ("FORWARD", {"type": 'W', "value": 'PRESS'}, None),
+ ("BACKWARD", {"type": 'S', "value": 'PRESS'}, None),
+ ("LEFT", {"type": 'A', "value": 'PRESS'}, None),
+ ("RIGHT", {"type": 'D', "value": 'PRESS'}, None),
+ ("UP", {"type": 'E', "value": 'PRESS'}, None),
+ ("DOWN", {"type": 'Q', "value": 'PRESS'}, None),
+ ("UP", {"type": 'R', "value": 'PRESS'}, None),
+ ("DOWN", {"type": 'F', "value": 'PRESS'}, None),
+ ("FORWARD", {"type": 'UP_ARROW', "value": 'PRESS'}, None),
+ ("BACKWARD", {"type": 'DOWN_ARROW', "value": 'PRESS'}, None),
+ ("LEFT", {"type": 'LEFT_ARROW', "value": 'PRESS'}, None),
+ ("RIGHT", {"type": 'RIGHT_ARROW', "value": 'PRESS'}, None),
+ ("AXIS_LOCK_X", {"type": 'X', "value": 'PRESS'}, None),
+ ("AXIS_LOCK_Z", {"type": 'Z', "value": 'PRESS'}, None),
+ ("PRECISION_ENABLE", {"type": 'LEFT_ALT', "value": 'PRESS', "any": True}, None),
+ ("PRECISION_DISABLE", {"type": 'LEFT_ALT', "value": 'RELEASE', "any": True}, None),
+ ("PRECISION_ENABLE", {"type": 'LEFT_SHIFT', "value": 'PRESS', "any": True}, None),
+ ("PRECISION_DISABLE", {"type": 'LEFT_SHIFT', "value": 'RELEASE', "any": True}, None),
+ ("FREELOOK_ENABLE", {"type": 'LEFT_CTRL', "value": 'PRESS', "any": True}, None),
+ ("FREELOOK_DISABLE", {"type": 'LEFT_CTRL', "value": 'RELEASE', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_view3d_walk_modal(_params):
+ items = []
+ keymap = (
+ "View3D Walk Modal",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CANCEL", {"type": 'RIGHTMOUSE', "value": 'ANY', "any": True}, None),
+ ("CANCEL", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'LEFTMOUSE', "value": 'ANY', "any": True}, None),
+ ("CONFIRM", {"type": 'RET', "value": 'PRESS', "any": True}, None),
+ ("CONFIRM", {"type": 'NUMPAD_ENTER', "value": 'PRESS', "any": True}, None),
+ ("FAST_ENABLE", {"type": 'LEFT_SHIFT', "value": 'PRESS', "any": True}, None),
+ ("FAST_DISABLE", {"type": 'LEFT_SHIFT', "value": 'RELEASE', "any": True}, None),
+ ("SLOW_ENABLE", {"type": 'LEFT_ALT', "value": 'PRESS', "any": True}, None),
+ ("SLOW_DISABLE", {"type": 'LEFT_ALT', "value": 'RELEASE', "any": True}, None),
+ ("FORWARD", {"type": 'W', "value": 'PRESS', "any": True}, None),
+ ("BACKWARD", {"type": 'S', "value": 'PRESS', "any": True}, None),
+ ("LEFT", {"type": 'A', "value": 'PRESS', "any": True}, None),
+ ("RIGHT", {"type": 'D', "value": 'PRESS', "any": True}, None),
+ ("UP", {"type": 'E', "value": 'PRESS', "any": True}, None),
+ ("DOWN", {"type": 'Q', "value": 'PRESS', "any": True}, None),
+ ("FORWARD_STOP", {"type": 'W', "value": 'RELEASE', "any": True}, None),
+ ("BACKWARD_STOP", {"type": 'S', "value": 'RELEASE', "any": True}, None),
+ ("LEFT_STOP", {"type": 'A', "value": 'RELEASE', "any": True}, None),
+ ("RIGHT_STOP", {"type": 'D', "value": 'RELEASE', "any": True}, None),
+ ("UP_STOP", {"type": 'E', "value": 'RELEASE', "any": True}, None),
+ ("DOWN_STOP", {"type": 'Q', "value": 'RELEASE', "any": True}, None),
+ ("FORWARD", {"type": 'UP_ARROW', "value": 'PRESS'}, None),
+ ("BACKWARD", {"type": 'DOWN_ARROW', "value": 'PRESS'}, None),
+ ("LEFT", {"type": 'LEFT_ARROW', "value": 'PRESS'}, None),
+ ("RIGHT", {"type": 'RIGHT_ARROW', "value": 'PRESS'}, None),
+ ("FORWARD_STOP", {"type": 'UP_ARROW', "value": 'RELEASE', "any": True}, None),
+ ("BACKWARD_STOP", {"type": 'DOWN_ARROW', "value": 'RELEASE', "any": True}, None),
+ ("LEFT_STOP", {"type": 'LEFT_ARROW', "value": 'RELEASE', "any": True}, None),
+ ("RIGHT_STOP", {"type": 'RIGHT_ARROW', "value": 'RELEASE', "any": True}, None),
+ ("GRAVITY_TOGGLE", {"type": 'TAB', "value": 'PRESS'}, None),
+ ("GRAVITY_TOGGLE", {"type": 'G', "value": 'PRESS'}, None),
+ ("JUMP", {"type": 'V', "value": 'PRESS', "any": True}, None),
+ ("JUMP_STOP", {"type": 'V', "value": 'RELEASE', "any": True}, None),
+ ("TELEPORT", {"type": 'SPACE', "value": 'PRESS', "any": True}, None),
+ ("TELEPORT", {"type": 'MIDDLEMOUSE', "value": 'ANY', "any": True}, None),
+ ("ACCELERATE", {"type": 'NUMPAD_PLUS', "value": 'PRESS', "any": True}, None),
+ ("DECELERATE", {"type": 'NUMPAD_MINUS', "value": 'PRESS', "any": True}, None),
+ ("ACCELERATE", {"type": 'WHEELUPMOUSE', "value": 'PRESS', "any": True}, None),
+ ("DECELERATE", {"type": 'WHEELDOWNMOUSE', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_view3d_rotate_modal(_params):
+ items = []
+ keymap = (
+ "View3D Rotate Modal",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CONFIRM", {"type": 'MIDDLEMOUSE', "value": 'RELEASE', "any": True}, None),
+ ("CONFIRM", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ("AXIS_SNAP_ENABLE", {"type": 'LEFT_ALT', "value": 'PRESS', "any": True}, None),
+ ("AXIS_SNAP_DISABLE", {"type": 'LEFT_ALT', "value": 'RELEASE', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_view3d_move_modal(_params):
+ items = []
+ keymap = (
+ "View3D Move Modal",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CONFIRM", {"type": 'MIDDLEMOUSE', "value": 'RELEASE', "any": True}, None),
+ ("CONFIRM", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_view3d_zoom_modal(_params):
+ items = []
+ keymap = (
+ "View3D Zoom Modal",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CONFIRM", {"type": 'MIDDLEMOUSE', "value": 'RELEASE', "any": True}, None),
+ ("CONFIRM", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_view3d_dolly_modal(_params):
+ items = []
+ keymap = (
+ "View3D Dolly Modal",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CONFIRM", {"type": 'MIDDLEMOUSE', "value": 'RELEASE', "any": True}, None),
+ ("CONFIRM", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_paint_stroke_modal(_params):
+ items = []
+ keymap = (
+ "Paint Stroke Modal",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW', "modal": True},
+ {"items": items},
+ )
+
+ items.extend([
+ ("CANCEL", {"type": 'ESC', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+def km_gizmos(_params):
+ items = []
+ keymap = (
+ "Gizmos",
+ {"space_type": 'EMPTY', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ return keymap
+
+
+def km_backdrop_transform_widget(_params):
+ items = []
+ keymap = (
+ "Backdrop Transform Widget",
+ {"space_type": 'NODE_EDITOR', "region_type": 'WINDOW'},
+ {"items": items},
+ )
+
+ items.extend([
+ ("gizmogroup.gizmo_tweak", {"type": 'LEFTMOUSE', "value": 'PRESS', "any": True}, None),
+ ])
+
+ return keymap
+
+
+# ------------------------------------------------------------------------------
+# Full Configuration
+
+def generate_keymaps(params=None):
+ if params is None:
+ params = KeymapParams()
+ return [
+ # Window, screen, area, region.
+ km_window(params),
+ km_screen(params),
+ km_screen_editing(params),
+ km_header(params),
+ km_view2d(params),
+ km_view2d_buttons_list(params),
+ km_user_interface(params),
+ km_property_editor(params),
+
+ # Editors.
+ km_outliner(params),
+ km_uv_editor(params),
+ km_uv_sculpt(params),
+ km_view3d_generic(params),
+ km_view3d(params),
+ km_mask_editing(params),
+ km_markers(params),
+ km_graph_editor_generic(params),
+ km_graph_editor(params),
+ km_image_generic(params),
+ km_image(params),
+ km_node_generic(params),
+ km_node_editor(params),
+ km_info(params),
+ km_file_browser(params),
+ km_file_browser_main(params),
+ km_file_browser_buttons(params),
+ km_dopesheet_generic(params),
+ km_dopesheet(params),
+ km_nla_generic(params),
+ km_nla_channels(params),
+ km_nla_editor(params),
+ km_text_generic(params),
+ km_text(params),
+ km_sequencercommon(params),
+ km_sequencer(params),
+ km_sequencerpreview(params),
+ km_console(params),
+ km_clip(params),
+ km_clip_editor(params),
+ km_clip_graph_editor(params),
+ km_clip_dopesheet_editor(params),
+
+ # Animation.
+ km_frames(params),
+ km_animation(params),
+ km_animation_channels(params),
+
+ # Modes.
+ km_grease_pencil(params),
+ km_grease_pencil_stroke_edit_mode(params),
+ km_grease_pencil_stroke_paint_mode(params),
+ km_grease_pencil_stroke_paint_draw_brush(params),
+ km_grease_pencil_stroke_paint_erase(params),
+ km_grease_pencil_stroke_paint_fill(params),
+ km_grease_pencil_stroke_sculpt_mode(params),
+ km_grease_pencil_stroke_weight_mode(params),
+ km_face_mask(params),
+ km_weight_paint_vertex_selection(params),
+ km_pose(params),
+ km_object_mode(params),
+ km_paint_curve(params),
+ km_curve(params),
+ km_image_paint(params),
+ km_vertex_paint(params),
+ km_weight_paint(params),
+ km_sculpt(params),
+ km_mesh(params),
+ km_armature(params),
+ km_metaball(params),
+ km_lattice(params),
+ km_particle(params),
+ km_font(params),
+ km_object_non_modal(params),
+
+ # Modal maps.
+ km_eyedropper_modal_map(params),
+ km_eyedropper_colorband_pointsampling_map(params),
+ km_transform_modal_map(params),
+ km_view3d_navigate(params),
+ km_view3d_navigate_tweak_modal_map(params),
+ km_view3d_gesture_circle(params),
+ km_gesture_border(params),
+ km_gesture_zoom_border(params),
+ km_gesture_straight_line(params),
+ km_standard_modal_map(params),
+ km_knife_tool_modal_map(params),
+ km_custom_normals_modal_map(params),
+ km_view3d_fly_modal(params),
+ km_view3d_walk_modal(params),
+ km_view3d_rotate_modal(params),
+ km_view3d_move_modal(params),
+ km_view3d_zoom_modal(params),
+ km_view3d_dolly_modal(params),
+ km_paint_stroke_modal(params),
+
+ # Gizmos.
+ km_gizmos(params),
+ km_backdrop_transform_widget_tweak_modal_map(params),
+ km_backdrop_crop_widget(params),
+ km_backdrop_crop_widget_tweak_modal_map(params),
+ km_sun_beams_widget(params),
+ km_sun_beams_widget_tweak_modal_map(params),
+ km_corner_pin_widget(params),
+ km_corner_pin_widget_tweak_modal_map(params),
+ km_uv_transform_gizmo(params),
+ km_uv_transform_gizmo_tweak_modal_map(params),
+ km_spot_light_widgets(params),
+ km_spot_light_widgets_tweak_modal_map(params),
+ km_area_light_widgets(params),
+ km_area_light_widgets_tweak_modal_map(params),
+ km_target_light_widgets(params),
+ km_target_light_widgets_tweak_modal_map(params),
+ km_force_field_widgets(params),
+ km_force_field_widgets_tweak_modal_map(params),
+ km_camera_widgets(params),
+ km_camera_widgets_tweak_modal_map(params),
+ km_camera_view_widgets(params),
+ km_camera_view_widgets_tweak_modal_map(params),
+ km_armature_spline_widgets(params),
+ km_armature_spline_widgets_tweak_modal_map(params),
+ km_backdrop_transform_widget(params),
+ ]
+
+# ------------------------------------------------------------------------------
+# Refactoring (Testing Only)
+#
+# Allows running outside of Blender to generate data for diffing
+#
+# To compare:
+#
+# python3 release/scripts/presets/keyconfig/keymap_data/blender_default.py && \
+# diff -u keymap_default.py keymap_default.py.orig && \
+# diff -u keymap_legacy.py keymap_legacy.py.orig
+#
+# # begin code:
+# import pprint
+# for legacy in (False, True):
+# with open("keymap_default.py" if not legacy else "keymap_legacy.py", 'w') as fh:
+# fh.write(pprint.pformat(generate_keymaps(KeymapParams(legacy=legacy)), indent=2, width=80))
+# import sys
+# sys.exit()
+# # end code
+
+
+# ------------------------------------------------------------------------------
+# PyLint (Testing Only)
+#
+# Command to lint:
+#
+# pylint release/scripts/presets/keyconfig/keymap_data/blender_default.py --disable=C0111,C0301,C0302,R0903,R0913
+
+
+if __name__ == "__main__":
+ from bpy_extras.keyconfig_utils import keyconfig_import_from_data
+ keyconfig_import_from_data("Blender", generate_keymaps(KeymapParams()))
+ keyconfig_import_from_data("Blender 27X", generate_keymaps(KeymapParams(legacy=True)))
diff --git a/release/scripts/startup/bl_ui/space_userpref.py b/release/scripts/startup/bl_ui/space_userpref.py
index a7504255dd5..149206fc151 100644
--- a/release/scripts/startup/bl_ui/space_userpref.py
+++ b/release/scripts/startup/bl_ui/space_userpref.py
@@ -1055,11 +1055,6 @@ class USERPREF_MT_keyconfigs(Menu):
preset_operator = "wm.keyconfig_activate"
def draw(self, context):
- props = self.layout.operator("wm.context_set_value", text="Blender (default)")
- props.data_path = "window_manager.keyconfigs.active"
- props.value = "context.window_manager.keyconfigs.default"
-
- # now draw the presets
Menu.draw_preset(self, context)
diff --git a/source/blender/editors/animation/anim_channels_edit.c b/source/blender/editors/animation/anim_channels_edit.c
index ce60fce23fc..8abef494313 100644
--- a/source/blender/editors/animation/anim_channels_edit.c
+++ b/source/blender/editors/animation/anim_channels_edit.c
@@ -65,7 +65,6 @@
#include "ED_anim_api.h"
#include "ED_armature.h"
#include "ED_keyframes_edit.h" // XXX move the select modes out of there!
-#include "ED_keymap_templates.h"
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_select_utils.h"
@@ -3195,61 +3194,7 @@ void ED_operatortypes_animchannels(void)
// TODO: check on a poll callback for this, to get hotkeys into menus
void ED_keymap_animchannels(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Animation Channels", 0, 0);
- wmKeyMapItem *kmi;
-
- /* click-select */
- /* XXX for now, only leftmouse.... */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_click", LEFTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_click", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", true);
- RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_click", LEFTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "children_only", true);
-
- /* rename */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_rename", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_channels_rename", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_channel_select_keys", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
- RNA_boolean_set(WM_keymap_add_item(keymap, "ANIM_OT_channel_select_keys", LEFTMOUSE, KM_DBL_CLICK, KM_SHIFT, 0)->ptr, "extend", true);
-
- /* find (i.e. a shortcut for setting the name filter) */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_find", FKEY, KM_PRESS, KM_CTRL, 0);
-
- /* deselect all */
- ED_keymap_template_select_all(keymap, "ANIM_OT_channels_select_all");
-
- /* box select */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_select_box", BKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_channels_select_box", EVT_TWEAK_L, KM_ANY, 0, 0);
-
- /* delete */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_channels_delete", DELKEY, KM_PRESS, 0, 0);
-
- /* settings */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_toggle", WKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_enable", WKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_channels_setting_disable", WKEY, KM_PRESS, KM_ALT, 0);
-
- /* settings - specialized hotkeys */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_editable_toggle", TABKEY, KM_PRESS, 0, 0);
-
- /* expand/collapse */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_expand", PADPLUSKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_channels_collapse", PADMINUS, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "ANIM_OT_channels_expand", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "all", false);
- kmi = WM_keymap_add_item(keymap, "ANIM_OT_channels_collapse", PADMINUS, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "all", false);
-
- /* rearranging */
- RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEUPKEY, KM_PRESS, 0, 0)->ptr, "direction", REARRANGE_ANIMCHAN_UP);
- RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEDOWNKEY, KM_PRESS, 0, 0)->ptr, "direction", REARRANGE_ANIMCHAN_DOWN);
- RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEUPKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "direction", REARRANGE_ANIMCHAN_TOP);
- RNA_enum_set(WM_keymap_add_item(keymap, "ANIM_OT_channels_move", PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "direction", REARRANGE_ANIMCHAN_BOTTOM);
-
- /* grouping */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_group", GKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_channels_ungroup", GKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
+ WM_keymap_ensure(keyconf, "Animation Channels", 0, 0);
}
/* ************************************************************************** */
diff --git a/source/blender/editors/animation/anim_markers.c b/source/blender/editors/animation/anim_markers.c
index 857400b3810..4d21ed8b5b4 100644
--- a/source/blender/editors/animation/anim_markers.c
+++ b/source/blender/editors/animation/anim_markers.c
@@ -72,7 +72,6 @@
#include "ED_markers.h"
#include "ED_screen.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "ED_util.h"
#include "ED_numinput.h"
#include "ED_object.h"
@@ -1649,50 +1648,5 @@ void ED_operatortypes_marker(void)
/* called in screen_ops.c:ED_keymap_screen() */
void ED_keymap_marker(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Markers", 0, 0);
- wmKeyMapItem *kmi;
-
- WM_keymap_verify_item(keymap, "MARKER_OT_add", MKEY, KM_PRESS, 0, 0);
- WM_keymap_verify_item(keymap, "MARKER_OT_move", EVT_TWEAK_S, KM_ANY, 0, 0);
- WM_keymap_verify_item(keymap, "MARKER_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_verify_item(keymap, "MARKER_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
- kmi = WM_keymap_add_item(keymap, "MARKER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
-#ifdef DURIAN_CAMERA_SWITCH
- kmi = WM_keymap_add_item(keymap, "MARKER_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "camera", true);
-
- kmi = WM_keymap_add_item(keymap, "MARKER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "camera", true);
-#else
- (void)kmi;
-#endif
-
- WM_keymap_verify_item(keymap, "MARKER_OT_select_box", BKEY, KM_PRESS, 0, 0);
-
- ED_keymap_template_select_all(keymap, "MARKER_OT_select_all");
-
- WM_keymap_add_item(keymap, "MARKER_OT_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "MARKER_OT_delete", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_verify_item(keymap, "MARKER_OT_rename", MKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "MARKER_OT_move", GKEY, KM_PRESS, 0, 0);
-#ifdef DURIAN_CAMERA_SWITCH
- WM_keymap_add_item(keymap, "MARKER_OT_camera_bind", BKEY, KM_PRESS, KM_CTRL, 0);
-#endif
-}
-
-/* to be called from animation editor keymaps, see note below */
-void ED_marker_keymap_animedit_conflictfree(wmKeyMap *keymap)
-{
- /* duplicate of some marker-hotkeys but without the bounds checking
- * since these are handy to be able to do unrestricted and won't conflict
- * with primary function hotkeys (Usability tweak [#27469])
- */
- WM_keymap_add_item(keymap, "MARKER_OT_add", MKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "MARKER_OT_rename", MKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_ensure(keyconf, "Markers", 0, 0);
}
diff --git a/source/blender/editors/animation/anim_ops.c b/source/blender/editors/animation/anim_ops.c
index c45b7b4b228..6fa1150eb0e 100644
--- a/source/blender/editors/animation/anim_ops.c
+++ b/source/blender/editors/animation/anim_ops.c
@@ -536,17 +536,5 @@ void ED_operatortypes_anim(void)
void ED_keymap_anim(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Animation", 0, 0);
- wmKeyMapItem *kmi;
-
- /* frame management */
- /* NOTE: 'ACTIONMOUSE' not 'LEFTMOUSE', as user may have swapped mouse-buttons */
- WM_keymap_add_item(keymap, "ANIM_OT_change_frame", ACTIONMOUSE, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TKEY, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.show_seconds");
-
- /* preview range */
- WM_keymap_verify_item(keymap, "ANIM_OT_previewrange_set", PKEY, KM_PRESS, 0, 0);
- WM_keymap_verify_item(keymap, "ANIM_OT_previewrange_clear", PKEY, KM_PRESS, KM_ALT, 0);
+ WM_keymap_ensure(keyconf, "Animation", 0, 0);
}
diff --git a/source/blender/editors/armature/armature_ops.c b/source/blender/editors/armature/armature_ops.c
index f61018f5278..b4c872c044d 100644
--- a/source/blender/editors/armature/armature_ops.c
+++ b/source/blender/editors/armature/armature_ops.c
@@ -36,7 +36,6 @@
#include "ED_armature.h"
#include "ED_screen.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "ED_transform.h"
#include "armature_intern.h"
@@ -191,212 +190,15 @@ void ED_operatormacros_armature(void)
void ED_keymap_armature(wmKeyConfig *keyconf)
{
wmKeyMap *keymap;
- wmKeyMapItem *kmi;
/* Armature ------------------------ */
+ /* only set in editmode armature, by space_view3d listener */
keymap = WM_keymap_ensure(keyconf, "Armature", 0, 0);
keymap->poll = ED_operator_editarmature;
- /* only set in editmode armature, by space_view3d listener */
- kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
- kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
-
- WM_keymap_add_item(keymap, "ARMATURE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "ARMATURE_OT_align", AKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "ARMATURE_OT_calculate_roll", NKEY, KM_PRESS, KM_CTRL, 0);
-#else
- WM_keymap_add_item(keymap, "ARMATURE_OT_calculate_roll", NKEY, KM_PRESS, KM_SHIFT, 0);
-#endif
- WM_keymap_add_item(keymap, "ARMATURE_OT_roll_clear", RKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "ARMATURE_OT_switch_direction", FKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "ARMATURE_OT_bone_primitive_add", AKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "ARMATURE_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "ARMATURE_OT_parent_clear", PKEY, KM_PRESS, KM_ALT, 0);
-
- ED_keymap_template_select_all(keymap, "ARMATURE_OT_select_all");
-
- kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_select_mirror", MKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
-
- kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_PARENT);
- RNA_boolean_set(kmi->ptr, "extend", false);
- kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_PARENT);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_CHILD);
- RNA_boolean_set(kmi->ptr, "extend", false);
- kmi = WM_keymap_add_item(keymap, "ARMATURE_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_CHILD);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- WM_keymap_add_item(keymap, "ARMATURE_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "ARMATURE_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "ARMATURE_OT_select_similar", GKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "ARMATURE_OT_select_linked", LKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "ARMATURE_OT_shortest_path_pick", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_armature_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_armature_delete", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "ARMATURE_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "ARMATURE_OT_dissolve", XKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "ARMATURE_OT_dissolve", DELKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "ARMATURE_OT_extrude_move", EKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "ARMATURE_OT_extrude_forked", EKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "ARMATURE_OT_click_extrude", ACTIONMOUSE, KM_CLICK, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "ARMATURE_OT_fill", FKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "ARMATURE_OT_merge", MKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "ARMATURE_OT_split", YKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "ARMATURE_OT_separate", PKEY, KM_PRESS, 0, 0);
-
- /* set flags */
- WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_toggle", WKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_enable", WKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_disable", WKEY, KM_PRESS, KM_ALT, 0);
-
- /* armature/bone layers */
- WM_keymap_add_item(keymap, "ARMATURE_OT_layers_show_all", ACCENTGRAVEKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "ARMATURE_OT_armature_layers", MKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "ARMATURE_OT_bone_layers", MKEY, KM_PRESS, 0, 0);
-
- /* special transforms: */
- /* 1) envelope/b-bone size */
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_BONESIZE);
- /* 2) envelope radius */
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_BONE_ENVELOPE);
- /* 3) set roll */
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", RKEY, KM_PRESS, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_BONE_ROLL);
-
- /* menus */
- WM_keymap_add_menu(keymap, "VIEW3D_MT_armature_specials", WKEY, KM_PRESS, 0, 0);
-
/* Pose ------------------------ */
/* only set in posemode, by space_view3d listener */
keymap = WM_keymap_ensure(keyconf, "Pose", 0, 0);
keymap->poll = ED_operator_posemode;
- /* set parent and add object are object-based operators, but we make them
- * available here because it's useful to do in pose mode too */
- WM_keymap_add_item(keymap, "OBJECT_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
-
- kmi = WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
- kmi = WM_keymap_add_item(keymap, "POSE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
-
- WM_keymap_add_item(keymap, "POSE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_pose_apply", AKEY, KM_PRESS, KM_CTRL, 0);
-
- /* TODO: clear pose */
- WM_keymap_add_item(keymap, "POSE_OT_rot_clear", RKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "POSE_OT_loc_clear", GKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "POSE_OT_scale_clear", SKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "POSE_OT_quaternions_flip", FKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "POSE_OT_rotation_mode_set", RKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "POSE_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
- kmi = WM_keymap_add_item(keymap, "POSE_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "flipped", false);
- kmi = WM_keymap_add_item(keymap, "POSE_OT_paste", VKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "flipped", true);
-
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "POSE_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
- kmi = WM_keymap_add_item(keymap, "POSE_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
- RNA_boolean_set(kmi->ptr, "flipped", false);
- kmi = WM_keymap_add_item(keymap, "POSE_OT_paste", VKEY, KM_PRESS, KM_OSKEY | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "flipped", true);
-#endif
-
- ED_keymap_template_select_all(keymap, "POSE_OT_select_all");
-
- WM_keymap_add_item(keymap, "POSE_OT_select_parent", PKEY, KM_PRESS, KM_SHIFT, 0);
-
- kmi = WM_keymap_add_item(keymap, "POSE_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_PARENT);
- RNA_boolean_set(kmi->ptr, "extend", false);
- kmi = WM_keymap_add_item(keymap, "POSE_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_PARENT);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- kmi = WM_keymap_add_item(keymap, "POSE_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_CHILD);
- RNA_boolean_set(kmi->ptr, "extend", false);
- kmi = WM_keymap_add_item(keymap, "POSE_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "direction", BONE_SELECT_CHILD);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- WM_keymap_add_item(keymap, "POSE_OT_select_linked", LKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "POSE_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "POSE_OT_select_mirror", MKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "POSE_OT_constraint_add_with_targets", CKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "POSE_OT_constraints_clear", CKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- WM_keymap_add_item(keymap, "POSE_OT_ik_add", IKEY, KM_PRESS, /*KM_CTRL|*/ KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "POSE_OT_ik_clear", IKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_pose_group", GKEY, KM_PRESS, KM_CTRL, 0);
-
- /* set flags */
- WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_toggle", WKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_enable", WKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_bone_options_disable", WKEY, KM_PRESS, KM_ALT, 0);
-
- /* armature/bone layers */
- WM_keymap_add_item(keymap, "ARMATURE_OT_layers_show_all", ACCENTGRAVEKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "ARMATURE_OT_armature_layers", MKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "POSE_OT_bone_layers", MKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", ZKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.overlay.show_bone_select");
-
- /* special transforms: */
- /* 1) envelope/b-bone size */
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_BONESIZE);
-
- /* keyframes management */
- WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_insert_menu", IKEY, KM_PRESS, 0, 0);
- WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_delete_v3d", IKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_verify_item(keymap, "ANIM_OT_keying_set_active_set", IKEY, KM_PRESS, KM_CTRL | KM_SHIFT | KM_ALT, 0);
-
- /* Pose -> PoseLib ------------- */
- /* only set in posemode, by space_view3d listener */
- WM_keymap_add_item(keymap, "POSELIB_OT_browse_interactive", LKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "POSELIB_OT_pose_add", LKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "POSELIB_OT_pose_remove", LKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "POSELIB_OT_pose_rename", LKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
-
- /* Pose -> Pose Sliding ------------- */
- /* only set in posemode, by space_view3d listener */
- WM_keymap_add_item(keymap, "POSE_OT_push", EKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "POSE_OT_relax", EKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "POSE_OT_breakdown", EKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* menus */
- WM_keymap_add_menu(keymap, "VIEW3D_MT_pose_specials", WKEY, KM_PRESS, 0, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_pose_propagate", PKEY, KM_PRESS, KM_ALT, 0);
}
diff --git a/source/blender/editors/curve/curve_ops.c b/source/blender/editors/curve/curve_ops.c
index daa817e2ffd..bd1c2248660 100644
--- a/source/blender/editors/curve/curve_ops.c
+++ b/source/blender/editors/curve/curve_ops.c
@@ -45,7 +45,6 @@
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "ED_transform.h"
#include "curve_intern.h"
@@ -168,136 +167,11 @@ void ED_operatormacros_curve(void)
void ED_keymap_curve(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap;
- wmKeyMapItem *kmi;
-
- keymap = WM_keymap_ensure(keyconf, "Font", 0, 0);
- keymap->poll = ED_operator_editfont;
-
/* only set in editmode font, by space_view3d listener */
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", BKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_CHINFO_BOLD);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", IKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_CHINFO_ITALIC);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", UKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_CHINFO_UNDERLINE);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_style_toggle", PKEY, KM_PRESS, KM_CTRL, 0)->ptr, "style", CU_CHINFO_SMALLCAPS);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_delete", DELKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_NEXT_SEL);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_delete", DELKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", DEL_NEXT_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_PREV_SEL);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_delete", BACKSPACEKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", DEL_PREV_SEL); /* same as above [#26623] */
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_delete", BACKSPACEKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", DEL_PREV_WORD);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", HOMEKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_BEGIN);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", ENDKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_END);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_CHAR);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_CHAR);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", LEFTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", PREV_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", RIGHTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", NEXT_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", UPARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_LINE);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", DOWNARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_LINE);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", PAGEUPKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_PAGE);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move", PAGEDOWNKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_PAGE);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", HOMEKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", LINE_BEGIN);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", ENDKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", LINE_END);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", LEFTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", PREV_CHAR);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", NEXT_CHAR);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", LEFTARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "type", PREV_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "type", NEXT_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", UPARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", PREV_LINE);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", DOWNARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", NEXT_LINE);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", PAGEUPKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", PREV_PAGE);
- RNA_enum_set(WM_keymap_add_item(keymap, "FONT_OT_move_select", PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", NEXT_PAGE);
-
- RNA_int_set(WM_keymap_add_item(keymap, "FONT_OT_change_spacing", LEFTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "delta", -1);
- RNA_int_set(WM_keymap_add_item(keymap, "FONT_OT_change_spacing", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "delta", 1);
- RNA_int_set(WM_keymap_add_item(keymap, "FONT_OT_change_character", UPARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "delta", 1);
- RNA_int_set(WM_keymap_add_item(keymap, "FONT_OT_change_character", DOWNARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "delta", -1);
-
- WM_keymap_add_item(keymap, "FONT_OT_select_all", AKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "FONT_OT_text_copy", CKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "FONT_OT_text_cut", XKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "FONT_OT_text_paste", VKEY, KM_PRESS, KM_CTRL, 0);
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "FONT_OT_select_all", AKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "FONT_OT_text_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "FONT_OT_text_cut", XKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "FONT_OT_text_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
-#endif
-
- WM_keymap_add_item(keymap, "FONT_OT_line_break", RETKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "FONT_OT_text_insert", KM_TEXTINPUT, KM_ANY, KM_ANY, 0); // last!
- kmi = WM_keymap_add_item(keymap, "FONT_OT_text_insert", BACKSPACEKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "accent", true); /* accented characters */
+ wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Font", 0, 0);
+ keymap->poll = ED_operator_editfont;
/* only set in editmode curve, by space_view3d listener */
keymap = WM_keymap_ensure(keyconf, "Curve", 0, 0);
keymap->poll = ED_operator_editsurfcurve;
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_curve_add", AKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "CURVE_OT_handle_type_set", VKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "CURVE_OT_vertex_add", ACTIONMOUSE, KM_CLICK, KM_CTRL, 0);
-
- kmi = WM_keymap_add_item(keymap, "CURVE_OT_draw", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- kmi = WM_keymap_add_item(keymap, "CURVE_OT_draw", TABLET_STYLUS, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- ED_keymap_template_select_all(keymap, "CURVE_OT_select_all");
-
- WM_keymap_add_item(keymap, "CURVE_OT_select_row", RKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "CURVE_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "CURVE_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "CURVE_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "CURVE_OT_select_similar", GKEY, KM_PRESS, KM_SHIFT, 0);
-
- kmi = WM_keymap_add_item(keymap, "CURVE_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "CURVE_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", true);
-
- WM_keymap_add_item(keymap, "CURVE_OT_shortest_path_pick", SELECTMOUSE, KM_CLICK, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "CURVE_OT_separate", PKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CURVE_OT_split", YKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CURVE_OT_extrude_move", EKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CURVE_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "CURVE_OT_make_segment", FKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CURVE_OT_cyclic_toggle", CKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_curve_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_curve_delete", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "CURVE_OT_dissolve_verts", XKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "CURVE_OT_dissolve_verts", DELKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "CURVE_OT_tilt_clear", TKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "TRANSFORM_OT_tilt", TKEY, KM_PRESS, KM_CTRL, 0);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0)->ptr, "mode", TFM_CURVE_SHRINKFATTEN);
-
- WM_keymap_add_item(keymap, "CURVE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
- kmi = WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
- kmi = WM_keymap_add_item(keymap, "CURVE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "CURVE_OT_normals_make_consistent", NKEY, KM_PRESS, KM_CTRL, 0);
-#else
- WM_keymap_add_item(keymap, "CURVE_OT_normals_make_consistent", NKEY, KM_PRESS, KM_SHIFT, 0);
-#endif
-
- WM_keymap_add_item(keymap, "OBJECT_OT_vertex_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_curve_specials", WKEY, KM_PRESS, 0, 0);
-
- /* menus */
- WM_keymap_add_menu(keymap, "VIEW3D_MT_hook", HKEY, KM_PRESS, KM_CTRL, 0);
-
- ED_keymap_proportional_cycle(keyconf, keymap);
- ED_keymap_proportional_editmode(keyconf, keymap, true);
}
diff --git a/source/blender/editors/gpencil/gpencil_ops.c b/source/blender/editors/gpencil/gpencil_ops.c
index 6a3047d7c2f..c2e078ff600 100644
--- a/source/blender/editors/gpencil/gpencil_ops.c
+++ b/source/blender/editors/gpencil/gpencil_ops.c
@@ -51,7 +51,6 @@
#include "ED_gpencil.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "ED_object.h"
#include "ED_transform.h"
@@ -63,49 +62,7 @@
/* Generic Drawing Keymap - Annotations */
static void ed_keymap_gpencil_general(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil", 0, 0);
- wmKeyMapItem *kmi;
-
- /* Draw --------------------------------------- */
- /* draw */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_annotate", LEFTMOUSE, KM_PRESS, 0, DKEY);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- /* draw - straight lines */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_annotate", LEFTMOUSE, KM_PRESS, KM_ALT, DKEY);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW_STRAIGHT);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- /* draw - poly lines */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_annotate", LEFTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, DKEY);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW_POLY);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- /* erase */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_annotate", RIGHTMOUSE, KM_PRESS, 0, DKEY);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_ERASER);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- /* Viewport Tools ------------------------------- */
-
- /* Enter EditMode */
- WM_keymap_add_item(keymap, "GPENCIL_OT_editmode_toggle", TABKEY, KM_PRESS, 0, DKEY);
-
- /* Pie Menu - For standard tools */
-#if 0 /* disable while we decide what to do here, maybe an add-on */
- WM_keymap_add_menu_pie(keymap, "GPENCIL_MT_pie_tool_palette", QKEY, KM_PRESS, 0, DKEY);
- WM_keymap_add_menu_pie(keymap, "GPENCIL_MT_pie_settings_palette", WKEY, KM_PRESS, 0, DKEY);
-#endif
-
- /* Add Blank Frame */
- /* XXX: BKEY or NKEY? BKEY is easier to reach from DKEY, so we'll use that for now */
- WM_keymap_add_item(keymap, "GPENCIL_OT_blank_frame_add", BKEY, KM_PRESS, 0, DKEY);
-
- /* Delete Active Frame - For easier video tutorials/review sessions */
- /* NOTE: This works even when not in EditMode */
- WM_keymap_add_item(keymap, "GPENCIL_OT_active_frames_delete_all", XKEY, KM_PRESS, 0, DKEY);
- WM_keymap_add_item(keymap, "GPENCIL_OT_active_frames_delete_all", DELKEY, KM_PRESS, 0, DKEY);
+ WM_keymap_ensure(keyconf, "Grease Pencil", 0, 0);
}
/* ==================== */
@@ -195,464 +152,58 @@ static bool gp_stroke_weightmode_poll(bContext *C)
return 0;
}
-static void ed_keymap_gpencil_selection(wmKeyMap *keymap)
-{
- wmKeyMapItem *kmi;
-
- /* select all */
- ED_keymap_template_select_all(keymap, "GPENCIL_OT_select_all");
-
- /* circle select */
- WM_keymap_add_item(keymap, "GPENCIL_OT_select_circle", CKEY, KM_PRESS, 0, 0);
-
- /* box select */
- WM_keymap_add_item(keymap, "GPENCIL_OT_select_box", BKEY, KM_PRESS, 0, 0);
-
- /* lasso select */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_SHIFT | KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "deselect", true);
-
- /* In the Node Editor, lasso select needs ALT modifier too
- * (as somehow CTRL+LMB drag gets taken for "cut" quite early)
- * There probably isn't too much harm adding this for other editors too as part of standard GP editing keymap.
- * This hotkey combo doesn't seem to see much use under standard scenarios?
- */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_SHIFT | KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", true);
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "toggle", true);
-
- /* whole stroke select */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "entire_strokes", true);
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "entire_strokes", true);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- /* select linked */
- /* NOTE: While LKEY is redundant, not having it breaks the mode illusion too much */
- WM_keymap_add_item(keymap, "GPENCIL_OT_select_linked", LKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "GPENCIL_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
-
- /* select alternate */
- WM_keymap_add_item(keymap, "GPENCIL_OT_select_alternate", LKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* select grouped */
- WM_keymap_add_item(keymap, "GPENCIL_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* select more/less */
- WM_keymap_add_item(keymap, "GPENCIL_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "GPENCIL_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
-}
-
-static void ed_keymap_gpencil_display(wmKeyMap *keymap)
-{
- wmKeyMapItem *kmi;
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", QKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.overlay.use_gpencil_edit_lines");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", QKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.overlay.use_gpencil_multiedit_line_only");
-}
-
-static void ed_keymap_gpencil_sculpt(wmKeyMap *keymap)
-{
- wmKeyMapItem *kmi;
-
- /* Pie Menu - For settings/tools easy access */
-#if 0 /* disable while we decide what to do here, maybe an add-on */
- WM_keymap_add_menu_pie(keymap, "GPENCIL_PIE_sculpt", EKEY, KM_PRESS, 0, DKEY);
-#endif
-
- /* Sculpting ------------------------------------- */
-
- /* Brush-Based Editing:
- * EKEY + LMB = Single stroke, draw immediately
- * + Other Modifiers (Ctrl/Shift) = Invert, Smooth, etc.
- *
- * For the modal version, use D+E -> Sculpt
- */
- /* GPXX: disabled to make toolsystem works */
- //kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, 0, 0);
- //RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
- RNA_boolean_set(kmi->ptr, "keep_brush", true);
- /*RNA_boolean_set(kmi->ptr, "use_invert", true);*/
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
- RNA_boolean_set(kmi->ptr, "keep_brush", true);
- /*RNA_boolean_set(kmi->ptr, "use_smooth", true);*/
-
- /* Shift-FKEY = Sculpt Strength */
- kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.gpencil_sculpt.brush.strength");
-
- /* FKEY = Sculpt Brush Size */
- kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.gpencil_sculpt.brush.size");
-
- /* menu sculpt specials */
- WM_keymap_add_menu(keymap, "VIEW3D_MT_gpencil_sculpt_specials", WKEY, KM_PRESS, 0, 0);
-}
-
-static void ed_keymap_gpencil_weight(wmKeyMap *keymap)
-{
- wmKeyMapItem *kmi;
-
-
- /* Brush-Based Editing:
- * EKEY + LMB = Single stroke, draw immediately
- * + Other Modifiers (Ctrl/Shift) = Invert, Smooth, etc.
- *
- * For the modal version, use D+E -> Sculpt
- */
- /* GPXX: disabled to make toolsystem works */
- //kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, 0, 0);
- //RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
- RNA_boolean_set(kmi->ptr, "keep_brush", true);
- /*RNA_boolean_set(kmi->ptr, "use_invert", true);*/
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_brush_paint", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
- RNA_boolean_set(kmi->ptr, "keep_brush", true);
- /*RNA_boolean_set(kmi->ptr, "use_smooth", true);*/
-}
-
/* Stroke Editing Keymap - Only when editmode is enabled */
static void ed_keymap_gpencil_editing(wmKeyConfig *keyconf)
{
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Edit Mode", 0, 0);
- wmKeyMapItem *kmi;
/* set poll callback - so that this keymap only gets enabled when stroke editmode is enabled */
keymap->poll = gp_stroke_editmode_poll;
-
- /* ----------------------------------------------- */
-
- /* Brush Settings */
- /* NOTE: We cannot expose these in the standard keymap, as they will interfere with regular hotkeys
- * in other modes. However, when we are dealing with Stroke Edit Mode, we know for certain
- * that the only data being edited is that of the Grease Pencil strokes
- */
-
- /* Interpolation */
- WM_keymap_add_item(keymap, "GPENCIL_OT_interpolate", EKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- WM_keymap_add_item(keymap, "GPENCIL_OT_interpolate_sequence", EKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
-
- /* normal select */
- WM_keymap_add_item(keymap, "GPENCIL_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
-
- /* Selection */
- ed_keymap_gpencil_selection(keymap);
-
- /* Editing ----------------------------------------- */
-
- /* duplicate and move selected points */
- WM_keymap_add_item(keymap, "GPENCIL_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* delete */
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_gpencil_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_gpencil_delete", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "GPENCIL_OT_dissolve", XKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "GPENCIL_OT_dissolve", DELKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "GPENCIL_OT_active_frames_delete_all", XKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "GPENCIL_OT_active_frames_delete_all", DELKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* menu edit specials */
- WM_keymap_add_menu(keymap, "VIEW3D_MT_gpencil_edit_specials", WKEY, KM_PRESS, 0, 0);
-
- /* menu separate */
- WM_keymap_add_menu(keymap, "GPENCIL_MT_separate", PKEY, KM_PRESS, 0, 0);
-
- /* split strokes */
- WM_keymap_add_item(keymap, "GPENCIL_OT_stroke_split", VKEY, KM_PRESS, 0, 0);
-
- /* join strokes */
- WM_keymap_add_item(keymap, "GPENCIL_OT_stroke_join", JKEY, KM_PRESS, KM_CTRL, 0);
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_stroke_join", JKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "type", GP_STROKE_JOINCOPY);
-
- /* copy + paste */
- WM_keymap_add_item(keymap, "GPENCIL_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "GPENCIL_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
-
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "GPENCIL_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "GPENCIL_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
-#endif
-
- /* snap */
- WM_keymap_add_menu(keymap, "GPENCIL_MT_snap", SKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* convert to geometry */
- WM_keymap_add_item(keymap, "GPENCIL_OT_convert", CKEY, KM_PRESS, KM_ALT, 0);
-
-
- /* Show/Hide */
- /* NOTE: These are available only in EditMode now, since they clash with general-purpose hotkeys */
- WM_keymap_add_item(keymap, "GPENCIL_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_hide", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
-
- WM_keymap_add_item(keymap, "GPENCIL_OT_selection_opacity_toggle", HKEY, KM_PRESS, KM_CTRL, 0);
-
- /* Display. */
- ed_keymap_gpencil_display(keymap);
-
- /* Isolate Layer */
- WM_keymap_add_item(keymap, "GPENCIL_OT_layer_isolate", PADASTERKEY, KM_PRESS, 0, 0);
-
- /* Move to Layer */
- WM_keymap_add_item(keymap, "GPENCIL_OT_move_to_layer", MKEY, KM_PRESS, 0, 0);
-
- /* Transform Tools */
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_bend", WKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "TRANSFORM_OT_tosphere", SKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "TRANSFORM_OT_shear", SKEY, KM_PRESS, KM_ALT | KM_CTRL | KM_SHIFT, 0);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_GPENCIL_SHRINKFATTEN);
-
- /* Proportional Editing */
- ED_keymap_proportional_cycle(keyconf, keymap);
- ED_keymap_proportional_editmode(keyconf, keymap, true);
-
- /* menu - add GP object (3d view only) */
- WM_keymap_add_item(keymap, "OBJECT_OT_gpencil_add", AKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* menu vertex group */
- WM_keymap_add_menu(keymap, "GPENCIL_MT_gpencil_vertex_group", GKEY, KM_PRESS, KM_CTRL, 0);
-
- /* toggle edit mode */
- WM_keymap_add_item(keymap, "GPENCIL_OT_editmode_toggle", TABKEY, KM_PRESS, 0, 0);
-
- /* select mode */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_selectmode_toggle", ONEKEY, KM_PRESS, 0, 0);
- RNA_int_set(kmi->ptr, "mode", 0);
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_selectmode_toggle", TWOKEY, KM_PRESS, 0, 0);
- RNA_int_set(kmi->ptr, "mode", 1);
}
/* keys for draw with a drawing brush (no fill) */
static void ed_keymap_gpencil_painting_draw(wmKeyConfig *keyconf)
{
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Paint (Draw brush)", 0, 0);
- wmKeyMapItem *kmi;
-
- /* set poll callback */
keymap->poll = gp_stroke_paintmode_draw_poll;
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- /* draw - straight lines */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW_STRAIGHT);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- /* draw - poly lines */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW_POLY);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- /* erase */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_ERASER);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- /* Tablet Mappings for Drawing ------------------ */
- /* For now, only support direct drawing using the eraser, as most users using a tablet
- * may still want to use that as their primary pointing device!
- */
-#if 0
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", TABLET_STYLUS, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-#endif
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", TABLET_ERASER, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_ERASER);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- /* Selection (used by eraser) */
- /* box select */
- WM_keymap_add_item(keymap, "GPENCIL_OT_select_box", BKEY, KM_PRESS, 0, 0);
-
- /* lasso select */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
}
/* keys for draw with a eraser brush (erase) */
static void ed_keymap_gpencil_painting_erase(wmKeyConfig *keyconf)
{
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Paint (Erase)", 0, 0);
- wmKeyMapItem *kmi;
-
- /* set poll callback */
keymap->poll = gp_stroke_paintmode_erase_poll;
-
- /* erase */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_ERASER);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", TABLET_ERASER, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_ERASER);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
-
- /* Selection (used by eraser) */
- /* box select */
- WM_keymap_add_item(keymap, "GPENCIL_OT_select_box", BKEY, KM_PRESS, 0, 0);
-
- /* lasso select */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
}
/* keys for draw with a fill brush */
static void ed_keymap_gpencil_painting_fill(wmKeyConfig *keyconf)
{
wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Paint (Fill)", 0, 0);
- wmKeyMapItem *kmi;
-
- /* set poll callback */
keymap->poll = gp_stroke_paintmode_fill_poll;
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_fill", LEFTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "on_back", false);
-
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_fill", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "on_back", true);
-
- /* if press alternative key, the brush now it's for drawing areas */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
- /* disable straight lines */
- RNA_boolean_set(kmi->ptr, "disable_straight", true);
-
- /* if press alternative key, the brush now it's for drawing lines */
- kmi = WM_keymap_add_item(keymap, "GPENCIL_OT_draw", LEFTMOUSE, KM_PRESS, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "mode", GP_PAINTMODE_DRAW);
- RNA_boolean_set(kmi->ptr, "wait_for_input", false);
- /* disable straight lines */
- RNA_boolean_set(kmi->ptr, "disable_straight", true);
- /* enable special stroke with no fill flag */
- RNA_boolean_set(kmi->ptr, "disable_fill", true);
}
/* Stroke Painting Keymap - Only when paintmode is enabled */
static void ed_keymap_gpencil_painting(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Paint Mode", 0, 0);
- wmKeyMapItem *kmi;
-
/* set poll callback - so that this keymap only gets enabled when stroke paintmode is enabled */
+ wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Paint Mode", 0, 0);
keymap->poll = gp_stroke_paintmode_poll;
-
- /* Shift-FKEY = Brush Strength */
- kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.gpencil_paint.brush.gpencil_settings.pen_strength");
-
- /* FKEY = Brush Size */
- kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.gpencil_paint.brush.size");
-
- /* CTRL + FKEY = Eraser Radius */
- kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path_primary", "user_preferences.edit.grease_pencil_eraser_radius");
-
- /* menu draw specials */
- WM_keymap_add_menu(keymap, "GPENCIL_MT_gpencil_draw_specials", WKEY, KM_PRESS, 0, 0);
-
- /* menu draw delete */
- WM_keymap_add_menu(keymap, "GPENCIL_MT_gpencil_draw_delete", XKEY, KM_PRESS, 0, 0);
-
}
/* Stroke Sculpting Keymap - Only when sculptmode is enabled */
static void ed_keymap_gpencil_sculpting(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Sculpt Mode", 0, 0);
-
/* set poll callback - so that this keymap only gets enabled when stroke sculptmode is enabled */
+ wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Sculpt Mode", 0, 0);
keymap->poll = gp_stroke_sculptmode_poll;
-
- /* Selection */
- ed_keymap_gpencil_selection(keymap);
-
- /* sculpt */
- ed_keymap_gpencil_sculpt(keymap);
-
- /* Display. */
- ed_keymap_gpencil_display(keymap);
}
/* Stroke Weight Paint Keymap - Only when weight is enabled */
static void ed_keymap_gpencil_weightpainting(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Weight Mode", 0, 0);
- wmKeyMapItem *kmi;
-
/* set poll callback - so that this keymap only gets enabled when stroke sculptmode is enabled */
+ wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Grease Pencil Stroke Weight Mode", 0, 0);
keymap->poll = gp_stroke_weightmode_poll;
-
- /* Selection */
- ed_keymap_gpencil_selection(keymap);
-
- /* sculpt */
- ed_keymap_gpencil_weight(keymap);
-
- /* Shift-FKEY = Sculpt Strength */
- kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.gpencil_sculpt.weight_brush.strength");
-
- /* FKEY = Sculpt Brush Size */
- kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.gpencil_sculpt.weight_brush.size");
-
- /* Display. */
- ed_keymap_gpencil_display(keymap);
}
/* ==================== */
diff --git a/source/blender/editors/include/ED_markers.h b/source/blender/editors/include/ED_markers.h
index a95e283f218..fa907010870 100644
--- a/source/blender/editors/include/ED_markers.h
+++ b/source/blender/editors/include/ED_markers.h
@@ -72,9 +72,6 @@ void ED_operatortypes_marker(void);
/* called in screen_ops.c:ED_keymap_screen() */
void ED_keymap_marker(struct wmKeyConfig *keyconf);
-/* called in animation editors - keymap defines */
-void ED_marker_keymap_animedit_conflictfree(struct wmKeyMap *keymap);
-
/* debugging only */
void debug_markers_print_list(struct ListBase *markers);
diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h
index b71e7133c58..afe037c92d1 100644
--- a/source/blender/editors/include/ED_object.h
+++ b/source/blender/editors/include/ED_object.h
@@ -108,13 +108,6 @@ bool ED_object_parent_set(struct ReportList *reports, const struct bContext *C,
const int vert_par[3]);
void ED_object_parent_clear(struct Object *ob, const int type);
-void ED_keymap_proportional_cycle(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap);
-void ED_keymap_proportional_obmode(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap);
-void ED_keymap_proportional_maskmode(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap);
-void ED_keymap_proportional_editmode(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap,
- const bool do_connected);
-void ED_keymap_editmesh_elem_mode(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap);
-
void ED_object_base_select(struct Base *base, eObjectSelect_Mode mode);
void ED_object_base_activate(struct bContext *C, struct Base *base);
void ED_object_base_free_and_unlink(struct Main *bmain, struct Scene *scene, struct Object *ob);
diff --git a/source/blender/editors/include/ED_transform.h b/source/blender/editors/include/ED_transform.h
index 3fe2e3a1436..7adc2d99879 100644
--- a/source/blender/editors/include/ED_transform.h
+++ b/source/blender/editors/include/ED_transform.h
@@ -48,7 +48,7 @@ struct Main;
struct SnapObjectContext;
struct SnapObjectParams;
-void transform_keymap_for_space(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap, int spaceid);
+void ED_keymap_transform(struct wmKeyConfig *keyconf);
void transform_operatortypes(void);
/* ******************** Macros & Prototypes *********************** */
diff --git a/source/blender/editors/interface/interface_eyedropper.c b/source/blender/editors/interface/interface_eyedropper.c
index 424019995ad..3a799c6e7db 100644
--- a/source/blender/editors/interface/interface_eyedropper.c
+++ b/source/blender/editors/interface/interface_eyedropper.c
@@ -70,15 +70,6 @@ wmKeyMap *eyedropper_modal_keymap(wmKeyConfig *keyconf)
keymap = WM_modalkeymap_add(keyconf, "Eyedropper Modal Map", modal_items);
- /* items for modal map */
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, EYE_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, KM_ANY, 0, EYE_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, RETKEY, KM_RELEASE, KM_ANY, 0, EYE_MODAL_SAMPLE_CONFIRM);
- WM_modalkeymap_add_item(keymap, PADENTER, KM_RELEASE, KM_ANY, 0, EYE_MODAL_SAMPLE_CONFIRM);
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, EYE_MODAL_SAMPLE_CONFIRM);
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_ANY, 0, EYE_MODAL_SAMPLE_BEGIN);
- WM_modalkeymap_add_item(keymap, SPACEKEY, KM_RELEASE, KM_ANY, 0, EYE_MODAL_SAMPLE_RESET);
-
/* assign to operators */
WM_modalkeymap_assign(keymap, "UI_OT_eyedropper_colorband");
WM_modalkeymap_assign(keymap, "UI_OT_eyedropper_color");
@@ -106,15 +97,6 @@ wmKeyMap *eyedropper_colorband_modal_keymap(wmKeyConfig *keyconf)
keymap = WM_modalkeymap_add(keyconf, "Eyedropper ColorBand PointSampling Map", modal_items_point);
- /* items for modal map */
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, EYE_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, BACKSPACEKEY, KM_PRESS, KM_ANY, 0, EYE_MODAL_POINT_REMOVE_LAST);
- WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, KM_ANY, 0, EYE_MODAL_POINT_CONFIRM);
- WM_modalkeymap_add_item(keymap, RETKEY, KM_RELEASE, KM_ANY, 0, EYE_MODAL_POINT_CONFIRM);
- WM_modalkeymap_add_item(keymap, PADENTER, KM_RELEASE, KM_ANY, 0, EYE_MODAL_POINT_CONFIRM);
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_ANY, 0, EYE_MODAL_POINT_SAMPLE);
- WM_modalkeymap_add_item(keymap, SPACEKEY, KM_RELEASE, KM_ANY, 0, EYE_MODAL_POINT_RESET);
-
/* assign to operators */
WM_modalkeymap_assign(keymap, "UI_OT_eyedropper_colorband_point");
diff --git a/source/blender/editors/interface/interface_ops.c b/source/blender/editors/interface/interface_ops.c
index e2e6cc78309..5be2b82af9e 100644
--- a/source/blender/editors/interface/interface_ops.c
+++ b/source/blender/editors/interface/interface_ops.c
@@ -1434,34 +1434,7 @@ void ED_operatortypes_ui(void)
*/
void ED_keymap_ui(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "User Interface", 0, 0);
- wmKeyMapItem *kmi;
-
- /* eyedroppers - notice they all have the same shortcut, but pass the event
- * through until a suitable eyedropper for the active button is found */
- WM_keymap_add_item(keymap, "UI_OT_eyedropper_color", EKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "UI_OT_eyedropper_colorband", EKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "UI_OT_eyedropper_colorband_point", EKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "UI_OT_eyedropper_id", EKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "UI_OT_eyedropper_depth", EKEY, KM_PRESS, 0, 0);
-
- /* Copy Data Path */
- WM_keymap_add_item(keymap, "UI_OT_copy_data_path_button", CKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- kmi = WM_keymap_add_item(keymap, "UI_OT_copy_data_path_button", CKEY, KM_PRESS, KM_CTRL | KM_SHIFT | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "full_path", true);
-
- /* keyframes */
- WM_keymap_add_item(keymap, "ANIM_OT_keyframe_insert_button", IKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_keyframe_delete_button", IKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_keyframe_clear_button", IKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
-
- /* drivers */
- WM_keymap_add_item(keymap, "ANIM_OT_driver_button_add", DKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_driver_button_remove", DKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
-
- /* keyingsets */
- WM_keymap_add_item(keymap, "ANIM_OT_keyingset_button_add", KKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_keyingset_button_remove", KKEY, KM_PRESS, KM_ALT, 0);
+ WM_keymap_ensure(keyconf, "User Interface", 0, 0);
eyedropper_modal_keymap(keyconf);
eyedropper_colorband_modal_keymap(keyconf);
diff --git a/source/blender/editors/interface/view2d_ops.c b/source/blender/editors/interface/view2d_ops.c
index 8df786b2a7f..6009b0bdb81 100644
--- a/source/blender/editors/interface/view2d_ops.c
+++ b/source/blender/editors/interface/view2d_ops.c
@@ -2129,85 +2129,5 @@ void ED_operatortypes_view2d(void)
void ED_keymap_view2d(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "View2D", 0, 0);
- wmKeyMapItem *kmi;
-
- /* scrollers */
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", LEFTMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", MIDDLEMOUSE, KM_PRESS, 0, 0);
-
- /* pan/scroll */
- WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MIDDLEMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MIDDLEMOUSE, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MOUSEPAN, 0, 0, 0);
-
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_right", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_left", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_up", WHEELUPMOUSE, KM_PRESS, KM_SHIFT, 0);
-
-#ifdef WITH_INPUT_NDOF
- WM_keymap_add_item(keymap, "VIEW2D_OT_ndof", NDOF_MOTION, 0, 0, 0);
-#endif
-
- /* zoom - single step */
- WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_out", WHEELOUTMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_in", WHEELINMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_out", PADMINUS, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_in", PADPLUSKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_zoom", MOUSEPAN, 0, KM_CTRL, 0);
-
- WM_keymap_verify_item(keymap, "VIEW2D_OT_smoothview", TIMER1, KM_ANY, KM_ANY, 0);
-
- /* scroll up/down - no modifiers, only when zoom fails */
- /* these may fail if zoom is disallowed, in which case they should pass on event */
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", WHEELDOWNMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_up", WHEELUPMOUSE, KM_PRESS, 0, 0);
- /* these may be necessary if vertical scroll is disallowed */
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_right", WHEELDOWNMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_left", WHEELUPMOUSE, KM_PRESS, 0, 0);
-
- /* alternatives for page up/down to scroll */
-#if 0 // XXX disabled, since this causes conflicts with hotkeys in animation editors
- /* scroll up/down may fall through to left/right */
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", PAGEDOWNKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_up", PAGEUPKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_right", PAGEDOWNKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_left", PAGEUPKEY, KM_PRESS, 0, 0);
- /* shift for moving view left/right with page up/down */
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_right", PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_left", PAGEUPKEY, KM_PRESS, KM_SHIFT, 0);
-#endif
-
- /* zoom - drag */
- WM_keymap_add_item(keymap, "VIEW2D_OT_zoom", MIDDLEMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_zoom", MOUSEZOOM, 0, 0, 0);
-
- /* borderzoom - drag */
- WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_border", BKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* Alternative keymap for buttons listview */
- keymap = WM_keymap_ensure(keyconf, "View2D Buttons List", 0, 0);
-
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", LEFTMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroller_activate", MIDDLEMOUSE, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MIDDLEMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_pan", MOUSEPAN, 0, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", WHEELDOWNMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_up", WHEELUPMOUSE, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_down", PAGEDOWNKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "page", true);
- kmi = WM_keymap_add_item(keymap, "VIEW2D_OT_scroll_up", PAGEUPKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "page", true);
-
- WM_keymap_add_item(keymap, "VIEW2D_OT_zoom", MIDDLEMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_zoom", MOUSEZOOM, 0, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_zoom", MOUSEPAN, 0, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_out", PADMINUS, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_zoom_in", PADPLUSKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW2D_OT_reset", HOMEKEY, KM_PRESS, 0, 0);
+ WM_keymap_ensure(keyconf, "View2D", 0, 0);
}
diff --git a/source/blender/editors/lattice/lattice_ops.c b/source/blender/editors/lattice/lattice_ops.c
index 6cf3c580698..76ccc2250ee 100644
--- a/source/blender/editors/lattice/lattice_ops.c
+++ b/source/blender/editors/lattice/lattice_ops.c
@@ -37,7 +37,6 @@
#include "ED_screen.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "ED_object.h"
#include "ED_lattice.h"
@@ -57,23 +56,6 @@ void ED_operatortypes_lattice(void)
void ED_keymap_lattice(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap;
-
- keymap = WM_keymap_ensure(keyconf, "Lattice", 0, 0);
+ wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Lattice", 0, 0);
keymap->poll = ED_operator_editlattice;
-
- ED_keymap_template_select_all(keymap, "LATTICE_OT_select_all");
-
- WM_keymap_add_item(keymap, "LATTICE_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "LATTICE_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "OBJECT_OT_vertex_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "LATTICE_OT_flip", FKEY, KM_PRESS, KM_ALT, 0);
-
- /* menus */
- WM_keymap_add_menu(keymap, "VIEW3D_MT_hook", HKEY, KM_PRESS, KM_CTRL, 0);
-
- ED_keymap_proportional_cycle(keyconf, keymap);
- ED_keymap_proportional_editmode(keyconf, keymap, false);
}
diff --git a/source/blender/editors/mask/mask_edit.c b/source/blender/editors/mask/mask_edit.c
index 5d9c8209c81..03fc7252ea6 100644
--- a/source/blender/editors/mask/mask_edit.c
+++ b/source/blender/editors/mask/mask_edit.c
@@ -43,7 +43,6 @@
#include "ED_screen.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "ED_mask.h" /* own include */
#include "ED_image.h"
#include "ED_object.h" /* ED_keymap_proportional_maskmode only */
@@ -524,106 +523,8 @@ void ED_operatortypes_mask(void)
void ED_keymap_mask(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap;
- wmKeyMapItem *kmi;
-
- keymap = WM_keymap_ensure(keyconf, "Mask Editing", 0, 0);
+ wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Mask Editing", 0, 0);
keymap->poll = ED_maskedit_poll;
-
- WM_keymap_add_item(keymap, "MASK_OT_new", NKEY, KM_PRESS, KM_ALT, 0);
-
- /* add menu */
- WM_keymap_add_menu(keymap, "MASK_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* mask mode supports PET now */
- ED_keymap_proportional_cycle(keyconf, keymap);
- ED_keymap_proportional_maskmode(keyconf, keymap);
-
- /* geometry */
- WM_keymap_add_item(keymap, "MASK_OT_add_vertex_slide", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "MASK_OT_add_feather_vertex_slide", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "MASK_OT_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "MASK_OT_delete", DELKEY, KM_PRESS, 0, 0);
-
- /* selection */
- kmi = WM_keymap_add_item(keymap, "MASK_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- RNA_boolean_set(kmi->ptr, "toggle", false);
- kmi = WM_keymap_add_item(keymap, "MASK_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- RNA_boolean_set(kmi->ptr, "toggle", true);
-
- ED_keymap_template_select_all(keymap, "MASK_OT_select_all");
-
- WM_keymap_add_item(keymap, "MASK_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
- kmi = WM_keymap_add_item(keymap, "MASK_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "MASK_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", true);
-
- WM_keymap_add_item(keymap, "MASK_OT_select_box", BKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "MASK_OT_select_circle", CKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "MASK_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "MASK_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_SHIFT | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", true);
-
- WM_keymap_add_item(keymap, "MASK_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "MASK_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
-
- /* hide/reveal */
- WM_keymap_add_item(keymap, "MASK_OT_hide_view_clear", HKEY, KM_PRESS, KM_ALT, 0);
- kmi = WM_keymap_add_item(keymap, "MASK_OT_hide_view_set", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
-
- kmi = WM_keymap_add_item(keymap, "MASK_OT_hide_view_set", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
-
- /* select clip while in maker view,
- * this matches View3D functionality where you can select an
- * object while in editmode to allow vertex parenting */
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
-
- /* shape */
- WM_keymap_add_item(keymap, "MASK_OT_cyclic_toggle", CKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "MASK_OT_slide_point", ACTIONMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "MASK_OT_slide_spline_curvature", ACTIONMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "MASK_OT_handle_type_set", VKEY, KM_PRESS, 0, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "MASK_OT_normals_make_consistent", NKEY, KM_PRESS, KM_CTRL, 0);
-#else
- WM_keymap_add_item(keymap, "MASK_OT_normals_make_consistent", NKEY, KM_PRESS, KM_SHIFT, 0);
-#endif
- // WM_keymap_add_item(keymap, "MASK_OT_feather_weight_clear", SKEY, KM_PRESS, KM_ALT, 0);
- /* ... matches curve editmode */
-
- /* relationships */
- WM_keymap_add_item(keymap, "MASK_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "MASK_OT_parent_clear", PKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "MASK_OT_shape_key_insert", IKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "MASK_OT_shape_key_clear", IKEY, KM_PRESS, KM_ALT, 0);
-
- /* duplicate */
- WM_keymap_add_item(keymap, "MASK_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "MASK_OT_copy_splines", CKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "MASK_OT_paste_splines", VKEY, KM_PRESS, KM_CTRL, 0);
-
- /* for image editor only */
- WM_keymap_add_item(keymap, "UV_OT_cursor_set", ACTIONMOUSE, KM_CLICK, 0, 0);
-
- /* Transform (don't use transform_keymap_for_space() since this maps to different spaces) */
- WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0);
- WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0);
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_MASK_SHRINKFATTEN);
}
void ED_operatormacros_mask(void)
diff --git a/source/blender/editors/mesh/editmesh_knife.c b/source/blender/editors/mesh/editmesh_knife.c
index e48fb6d9ecb..2e442d97fad 100644
--- a/source/blender/editors/mesh/editmesh_knife.c
+++ b/source/blender/editors/mesh/editmesh_knife.c
@@ -2761,30 +2761,6 @@ wmKeyMap *knifetool_modal_keymap(wmKeyConfig *keyconf)
keymap = WM_modalkeymap_add(keyconf, "Knife Tool Modal Map", modal_items);
- /* items for modal map */
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, KNF_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_ANY, KM_ANY, 0, KNF_MODAL_PANNING);
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_DBL_CLICK, KM_ANY, 0, KNF_MODAL_ADD_CUT_CLOSED);
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_ANY, KM_ANY, 0, KNF_MODAL_ADD_CUT);
- WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, KM_ANY, 0, KNF_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, KNF_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, KNF_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, SPACEKEY, KM_PRESS, KM_ANY, 0, KNF_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, EKEY, KM_PRESS, 0, 0, KNF_MODAL_NEW_CUT);
-
- WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_PRESS, KM_ANY, 0, KNF_MODAL_MIDPOINT_ON);
- WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, KNF_MODAL_MIDPOINT_OFF);
- WM_modalkeymap_add_item(keymap, RIGHTCTRLKEY, KM_PRESS, KM_ANY, 0, KNF_MODAL_MIDPOINT_ON);
- WM_modalkeymap_add_item(keymap, RIGHTCTRLKEY, KM_RELEASE, KM_ANY, 0, KNF_MODAL_MIDPOINT_OFF);
-
- WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_PRESS, KM_ANY, 0, KNF_MODEL_IGNORE_SNAP_ON);
- WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_RELEASE, KM_ANY, 0, KNF_MODEL_IGNORE_SNAP_OFF);
- WM_modalkeymap_add_item(keymap, RIGHTSHIFTKEY, KM_PRESS, KM_ANY, 0, KNF_MODEL_IGNORE_SNAP_ON);
- WM_modalkeymap_add_item(keymap, RIGHTSHIFTKEY, KM_RELEASE, KM_ANY, 0, KNF_MODEL_IGNORE_SNAP_OFF);
-
- WM_modalkeymap_add_item(keymap, CKEY, KM_PRESS, 0, 0, KNF_MODAL_ANGLE_SNAP_TOGGLE);
- WM_modalkeymap_add_item(keymap, ZKEY, KM_PRESS, 0, 0, KNF_MODAL_CUT_THROUGH_TOGGLE);
-
WM_modalkeymap_assign(keymap, "MESH_OT_knife_tool");
return keymap;
diff --git a/source/blender/editors/mesh/editmesh_tools.c b/source/blender/editors/mesh/editmesh_tools.c
index ac600a3ca2d..35ab7fa9c55 100644
--- a/source/blender/editors/mesh/editmesh_tools.c
+++ b/source/blender/editors/mesh/editmesh_tools.c
@@ -7139,27 +7139,6 @@ wmKeyMap *point_normals_modal_keymap(wmKeyConfig *keyconf)
keymap = WM_modalkeymap_add(keyconf, keymap_name, modal_items);
- /* Generic items for modal map. */
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, EDBM_CLNOR_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_CANCEL);
-
- WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, EDBM_CLNOR_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, EDBM_CLNOR_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_CONFIRM);
-
- /* Point To items for modal map */
- WM_modalkeymap_add_item(keymap, RKEY, KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_POINTTO_RESET);
- WM_modalkeymap_add_item(keymap, IKEY, KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_POINTTO_INVERT);
- WM_modalkeymap_add_item(keymap, SKEY, KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_POINTTO_SPHERIZE);
- WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_POINTTO_ALIGN);
-
- WM_modalkeymap_add_item(keymap, MKEY, KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_POINTTO_USE_MOUSE);
- WM_modalkeymap_add_item(keymap, LKEY, KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_POINTTO_USE_PIVOT);
- WM_modalkeymap_add_item(keymap, OKEY, KM_PRESS, KM_NOTHING, 0, EDBM_CLNOR_MODAL_POINTTO_USE_OBJECT);
-
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_CLICK, KM_CTRL, 0, EDBM_CLNOR_MODAL_POINTTO_SET_USE_3DCURSOR);
- WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_CLICK, KM_CTRL, 0, EDBM_CLNOR_MODAL_POINTTO_SET_USE_SELECTED);
-
WM_modalkeymap_assign(keymap, "MESH_OT_point_normals");
return keymap;
diff --git a/source/blender/editors/mesh/mesh_ops.c b/source/blender/editors/mesh/mesh_ops.c
index 2d5768e14ae..a517f41d1fe 100644
--- a/source/blender/editors/mesh/mesh_ops.c
+++ b/source/blender/editors/mesh/mesh_ops.c
@@ -41,7 +41,6 @@
#include "ED_mesh.h"
#include "ED_screen.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "mesh_intern.h" /* own include */
@@ -325,207 +324,9 @@ void ED_operatormacros_mesh(void)
/* note mesh keymap also for other space? */
void ED_keymap_mesh(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap;
- wmKeyMapItem *kmi;
-
- keymap = WM_keymap_ensure(keyconf, "Mesh", 0, 0);
+ wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Mesh", 0, 0);
keymap->poll = ED_operator_editmesh;
- kmi = WM_keymap_add_item(keymap, "MESH_OT_loopcut_slide", RKEY, KM_PRESS, KM_CTRL, 0);
- {
- PointerRNA macro_ptr = RNA_pointer_get(kmi->ptr, "TRANSFORM_OT_edge_slide");
- RNA_boolean_set(&macro_ptr, "release_confirm", false);
- }
- kmi = WM_keymap_add_item(keymap, "MESH_OT_offset_edge_loops_slide", RKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- {
- PointerRNA macro_ptr = RNA_pointer_get(kmi->ptr, "TRANSFORM_OT_edge_slide");
- RNA_boolean_set(&macro_ptr, "release_confirm", false);
- }
-
- WM_keymap_add_item(keymap, "MESH_OT_inset", IKEY, KM_PRESS, 0, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "MESH_OT_poke", PKEY, KM_PRESS, KM_ALT, 0);
-#endif
- kmi = WM_keymap_add_item(keymap, "MESH_OT_bevel", BKEY, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "vertex_only", false);
- kmi = WM_keymap_add_item(keymap, "MESH_OT_bevel", BKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "vertex_only", true);
-
- /* Selec Vert/Edge/Face. */
- ED_keymap_editmesh_elem_mode(keyconf, keymap);
-
- /* standard mouse selection goes via space_view3d */
- kmi = WM_keymap_add_item(keymap, "MESH_OT_loop_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- RNA_boolean_set(kmi->ptr, "toggle", false);
- kmi = WM_keymap_add_item(keymap, "MESH_OT_loop_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- RNA_boolean_set(kmi->ptr, "toggle", true);
-
- kmi = WM_keymap_add_item(keymap, "MESH_OT_edgering_select", SELECTMOUSE, KM_PRESS, KM_ALT | KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- RNA_boolean_set(kmi->ptr, "toggle", false);
- kmi = WM_keymap_add_item(keymap, "MESH_OT_edgering_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT | KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- RNA_boolean_set(kmi->ptr, "toggle", true);
-
- kmi = WM_keymap_add_item(keymap, "MESH_OT_shortest_path_pick", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "use_fill", false);
-
- kmi = WM_keymap_add_item(keymap, "MESH_OT_shortest_path_pick", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "use_fill", true);
-
- ED_keymap_template_select_all(keymap, "MESH_OT_select_all");
-
- WM_keymap_add_item(keymap, "MESH_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "MESH_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "MESH_OT_select_next_item", PADPLUSKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "MESH_OT_select_prev_item", PADMINUS, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "MESH_OT_select_non_manifold", MKEY, KM_PRESS, (KM_CTRL | KM_SHIFT | KM_ALT), 0);
-#endif
-
- WM_keymap_add_item(keymap, "MESH_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
- kmi = WM_keymap_add_item(keymap, "MESH_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "MESH_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", true);
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "MESH_OT_faces_select_linked_flat", FKEY, KM_PRESS, (KM_CTRL | KM_SHIFT | KM_ALT), 0);
-#endif
-
- WM_keymap_add_item(keymap, "MESH_OT_select_mirror", MKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_select_similar", GKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* hide */
- kmi = WM_keymap_add_item(keymap, "MESH_OT_hide", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
- kmi = WM_keymap_add_item(keymap, "MESH_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
- WM_keymap_add_item(keymap, "MESH_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
-
- /* tools */
-#ifdef USE_WM_KEYMAP_27X
- kmi = WM_keymap_add_item(keymap, "MESH_OT_normals_make_consistent", NKEY, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "inside", false);
- kmi = WM_keymap_add_item(keymap, "MESH_OT_normals_make_consistent", NKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "inside", true);
-#else
- kmi = WM_keymap_add_item(keymap, "MESH_OT_normals_make_consistent", NKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "inside", false);
- kmi = WM_keymap_add_item(keymap, "MESH_OT_normals_make_consistent", NKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "inside", true);
-#endif
-
- WM_keymap_add_item(keymap, "VIEW3D_OT_edit_mesh_extrude_move_normal", EKEY, KM_PRESS, 0, 0); /* python operator */
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_extrude", EKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "TRANSFORM_OT_edge_crease", EKEY, KM_PRESS, KM_SHIFT, 0);
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "MESH_OT_spin", RKEY, KM_PRESS, KM_ALT, 0);
-#endif
-
- WM_keymap_add_item(keymap, "MESH_OT_fill", FKEY, KM_PRESS, KM_ALT, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "MESH_OT_beautify_fill", FKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
-#endif
-
- kmi = WM_keymap_add_item(keymap, "MESH_OT_quads_convert_to_tris", TKEY, KM_PRESS, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "quad_method", MOD_TRIANGULATE_QUAD_BEAUTY);
- RNA_enum_set(kmi->ptr, "ngon_method", MOD_TRIANGULATE_NGON_BEAUTY);
- kmi = WM_keymap_add_item(keymap, "MESH_OT_quads_convert_to_tris", TKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "quad_method", MOD_TRIANGULATE_QUAD_FIXED);
- RNA_enum_set(kmi->ptr, "ngon_method", MOD_TRIANGULATE_NGON_EARCLIP);
-
- WM_keymap_add_item(keymap, "MESH_OT_tris_convert_to_quads", JKEY, KM_PRESS, KM_ALT, 0);
-
- kmi = WM_keymap_add_item(keymap, "MESH_OT_rip_move", VKEY, KM_PRESS, 0, 0);
- {
- PointerRNA macro_ptr = RNA_pointer_get(kmi->ptr, "MESH_OT_rip");
- RNA_boolean_set(&macro_ptr, "use_fill", false);
- }
- kmi = WM_keymap_add_item(keymap, "MESH_OT_rip_move", VKEY, KM_PRESS, KM_ALT, 0);
- {
- PointerRNA macro_ptr = RNA_pointer_get(kmi->ptr, "MESH_OT_rip");
- RNA_boolean_set(&macro_ptr, "use_fill", true);
- }
-
- WM_keymap_add_item(keymap, "MESH_OT_rip_edge_move", DKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "MESH_OT_merge", MKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "TRANSFORM_OT_shrink_fatten", SKEY, KM_PRESS, KM_ALT, 0);
-
- /* add/remove */
- WM_keymap_add_item(keymap, "MESH_OT_edge_face_add", FKEY, KM_PRESS, 0, 0);
-// WM_keymap_add_item(keymap, "MESH_OT_skin", FKEY, KM_PRESS, KM_CTRL|KM_ALT, 0); /* python, removed */
- WM_keymap_add_item(keymap, "MESH_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_mesh_add", AKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "MESH_OT_separate", PKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "MESH_OT_split", YKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "MESH_OT_vert_connect_path", JKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "MESH_OT_point_normals", LKEY, KM_PRESS, KM_ALT, 0);
-
- /* Vertex Slide */
- WM_keymap_add_item(keymap, "TRANSFORM_OT_vert_slide", VKEY, KM_PRESS, KM_SHIFT, 0);
- /* use KM_CLICK because same key is used for tweaks */
- kmi = WM_keymap_add_item(keymap, "MESH_OT_dupli_extrude_cursor", ACTIONMOUSE, KM_CLICK, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "rotate_source", true);
- kmi = WM_keymap_add_item(keymap, "MESH_OT_dupli_extrude_cursor", ACTIONMOUSE, KM_CLICK, KM_SHIFT | KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "rotate_source", false);
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_delete", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "MESH_OT_dissolve_mode", XKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "MESH_OT_dissolve_mode", DELKEY, KM_PRESS, KM_CTRL, 0);
-
- kmi = WM_keymap_add_item(keymap, "MESH_OT_knife_tool", KKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "use_occlude_geometry", true);
- RNA_boolean_set(kmi->ptr, "only_selected", false);
-
-#ifdef USE_WM_KEYMAP_27X
- kmi = WM_keymap_add_item(keymap, "MESH_OT_knife_tool", KKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "use_occlude_geometry", false);
- RNA_boolean_set(kmi->ptr, "only_selected", true);
-#endif
-
- WM_keymap_add_item(keymap, "OBJECT_OT_vertex_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
-
- /* menus */
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_specials", WKEY, KM_PRESS, 0, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_faces", FKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_edges", EKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_edit_mesh_vertices", VKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_hook", HKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_menu(keymap, "VIEW3D_MT_uv_map", UKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_vertex_group", GKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "OBJECT_OT_vertex_group_remove_from", GKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
-
-#ifdef USE_WM_KEYMAP_27X
- /* useful stuff from object-mode */
- for (int i = 0; i <= 5; i++) {
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY + i, KM_PRESS, KM_CTRL, 0);
- RNA_int_set(kmi->ptr, "level", i);
- }
-#endif
-
- ED_keymap_proportional_cycle(keyconf, keymap);
- ED_keymap_proportional_editmode(keyconf, keymap, true);
-
knifetool_modal_keymap(keyconf);
point_normals_modal_keymap(keyconf);
}
diff --git a/source/blender/editors/metaball/mball_ops.c b/source/blender/editors/metaball/mball_ops.c
index c3c404f37ac..0e029e36e0e 100644
--- a/source/blender/editors/metaball/mball_ops.c
+++ b/source/blender/editors/metaball/mball_ops.c
@@ -38,7 +38,6 @@
#include "ED_mball.h"
#include "ED_screen.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "ED_object.h"
#include "mball_intern.h"
@@ -71,29 +70,6 @@ void ED_operatormacros_metaball(void)
void ED_keymap_metaball(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap;
- wmKeyMapItem *kmi;
-
- keymap = WM_keymap_ensure(keyconf, "Metaball", 0, 0);
+ wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Metaball", 0, 0);
keymap->poll = ED_operator_editmball;
-
- WM_keymap_add_item(keymap, "OBJECT_OT_metaball_add", AKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "MBALL_OT_reveal_metaelems", HKEY, KM_PRESS, KM_ALT, 0);
- kmi = WM_keymap_add_item(keymap, "MBALL_OT_hide_metaelems", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
- kmi = WM_keymap_add_item(keymap, "MBALL_OT_hide_metaelems", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
-
- WM_keymap_add_item(keymap, "MBALL_OT_delete_metaelems", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "MBALL_OT_delete_metaelems", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "MBALL_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
-
- ED_keymap_template_select_all(keymap, "MBALL_OT_select_all");
-
- WM_keymap_add_item(keymap, "MBALL_OT_select_similar", GKEY, KM_PRESS, KM_SHIFT, 0);
-
- ED_keymap_proportional_cycle(keyconf, keymap);
- ED_keymap_proportional_editmode(keyconf, keymap, true);
}
diff --git a/source/blender/editors/object/object_ops.c b/source/blender/editors/object/object_ops.c
index 46598041100..eb9dd0bbe28 100644
--- a/source/blender/editors/object/object_ops.c
+++ b/source/blender/editors/object/object_ops.c
@@ -47,7 +47,6 @@
#include "ED_screen.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "ED_object.h"
#include "DEG_depsgraph.h"
@@ -306,220 +305,12 @@ static bool object_mode_poll(bContext *C)
void ED_keymap_object(wmKeyConfig *keyconf)
{
wmKeyMap *keymap;
- wmKeyMapItem *kmi;
/* Objects, Regardless of Mode -------------------------------------------------- */
keymap = WM_keymap_ensure(keyconf, "Object Non-modal", 0, 0);
- /* modes */
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT);
- RNA_boolean_set(kmi->ptr, "toggle", true);
-
-#if 0
- WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_object_mode_pie", TABKEY, KM_PRESS, KM_CTRL, 0);
-#else
- WM_keymap_add_item(keymap, "VIEW3D_OT_object_mode_pie_or_toggle", TABKEY, KM_PRESS, KM_CTRL, 0);
-#endif
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "OBJECT_OT_origin_set", CKEY, KM_PRESS, KM_ALT | KM_SHIFT | KM_CTRL, 0);
-#endif
-
/* Object Mode ---------------------------------------------------------------- */
/* Note: this keymap gets disabled in non-objectmode, */
keymap = WM_keymap_ensure(keyconf, "Object Mode", 0, 0);
keymap->poll = object_mode_poll;
-
- /* object mode supports PET now */
- ED_keymap_proportional_cycle(keyconf, keymap);
- ED_keymap_proportional_obmode(keyconf, keymap);
-
- ED_keymap_template_select_all(keymap, "OBJECT_OT_select_all");
-
- WM_keymap_add_item(keymap, "OBJECT_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "OBJECT_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "OBJECT_OT_select_linked", LKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "OBJECT_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "OBJECT_OT_select_mirror", MKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
-#endif
-
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_enum_set_identifier(NULL, kmi->ptr, "direction", "PARENT");
- RNA_boolean_set(kmi->ptr, "extend", false);
-
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", LEFTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set_identifier(NULL, kmi->ptr, "direction", "PARENT");
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_enum_set_identifier(NULL, kmi->ptr, "direction", "CHILD");
- RNA_boolean_set(kmi->ptr, "extend", false);
-
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_select_hierarchy", RIGHTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set_identifier(NULL, kmi->ptr, "direction", "CHILD");
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- WM_keymap_verify_item(keymap, "OBJECT_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_verify_item(keymap, "OBJECT_OT_parent_no_inverse_set", PKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
-#endif
- WM_keymap_verify_item(keymap, "OBJECT_OT_parent_clear", PKEY, KM_PRESS, KM_ALT, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_verify_item(keymap, "OBJECT_OT_track_set", TKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_verify_item(keymap, "OBJECT_OT_track_clear", TKEY, KM_PRESS, KM_ALT, 0);
-#endif
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_verify_item(keymap, "OBJECT_OT_constraint_add_with_targets", CKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- WM_keymap_verify_item(keymap, "OBJECT_OT_constraints_clear", CKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
-#endif
-
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_location_clear", GKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "clear_delta", false);
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_rotation_clear", RKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "clear_delta", false);
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_scale_clear", SKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "clear_delta", false);
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_verify_item(keymap, "OBJECT_OT_origin_clear", OKEY, KM_PRESS, KM_ALT, 0);
-#endif
-
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_delete", XKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "use_global", false);
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_delete", XKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "use_global", true);
-
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_delete", DELKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "use_global", false);
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_delete", DELKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "use_global", true);
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "OBJECT_OT_duplicates_make_real", AKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
-
-#endif
- WM_keymap_add_menu(keymap, "VIEW3D_MT_object_apply", AKEY, KM_PRESS, KM_CTRL, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_menu(keymap, "VIEW3D_MT_make_single_user", UKEY, KM_PRESS, 0, 0);
-#endif
- WM_keymap_add_menu(keymap, "VIEW3D_MT_make_links", LKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "OBJECT_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "OBJECT_OT_duplicate_move_linked", DKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "OBJECT_OT_join", JKEY, KM_PRESS, KM_CTRL, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "OBJECT_OT_convert", CKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "OBJECT_OT_proxy_make", PKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- WM_keymap_add_item(keymap, "OBJECT_OT_make_local", LKEY, KM_PRESS, 0, 0);
-#endif
-
- /* XXX this should probably be in screen instead... here for testing purposes in the meantime... - Aligorith */
- WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_insert_menu", IKEY, KM_PRESS, 0, 0);
- WM_keymap_verify_item(keymap, "ANIM_OT_keyframe_delete_v3d", IKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_verify_item(keymap, "ANIM_OT_keying_set_active_set", IKEY, KM_PRESS, KM_CTRL | KM_SHIFT | KM_ALT, 0);
-
- WM_keymap_verify_item(keymap, "COLLECTION_OT_create", GKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_verify_item(keymap, "COLLECTION_OT_objects_remove", GKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- WM_keymap_verify_item(keymap, "COLLECTION_OT_objects_remove_all", GKEY, KM_PRESS, KM_SHIFT | KM_CTRL | KM_ALT, 0);
- WM_keymap_verify_item(keymap, "COLLECTION_OT_objects_add_active", GKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- WM_keymap_verify_item(keymap, "COLLECTION_OT_objects_remove_active", GKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_object_specials", WKEY, KM_PRESS, 0, 0);
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_verify_item(keymap, "OBJECT_OT_data_transfer", TKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
-#endif
- /* XXX No more available 'T' shortcuts... :/ */
- /* WM_keymap_verify_item(keymap, "OBJECT_OT_datalayout_transfer", TKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0); */
-
- for (int i = 0; i <= 5; i++) {
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY + i, KM_PRESS, KM_CTRL, 0);
- RNA_int_set(kmi->ptr, "level", i);
- }
-
- WM_keymap_add_item(keymap, "OBJECT_OT_move_to_collection", MKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "OBJECT_OT_link_to_collection", MKEY, KM_PRESS, KM_SHIFT, 0);
-
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_clear", HKEY, KM_PRESS, KM_ALT, 0);
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_set", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_set", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_collection", HKEY, KM_PRESS, KM_CTRL, 0);
-
- /* Collection switching. */
- for (int i = 0; i < 10; i++) {
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_collection", ZEROKEY + i, KM_PRESS, KM_ANY, 0);
- RNA_int_set(kmi->ptr, "collection_index", (i == 0) ? 10 : i);
- }
-}
-
-void ED_keymap_proportional_cycle(struct wmKeyConfig *UNUSED(keyconf), struct wmKeyMap *keymap)
-{
- WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_proportional_editing_falloff_pie", OKEY, KM_PRESS, KM_SHIFT, 0);
-}
-
-void ED_keymap_proportional_obmode(struct wmKeyConfig *UNUSED(keyconf), struct wmKeyMap *keymap)
-{
- wmKeyMapItem *kmi;
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", OKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_proportional_edit_objects");
-}
-
-void ED_keymap_proportional_maskmode(struct wmKeyConfig *UNUSED(keyconf), struct wmKeyMap *keymap)
-{
- wmKeyMapItem *kmi;
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", OKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_proportional_edit_mask");
-}
-
-void ED_keymap_proportional_editmode(struct wmKeyConfig *UNUSED(keyconf), struct wmKeyMap *keymap,
- const bool do_connected)
-{
- wmKeyMapItem *kmi;
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", OKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.proportional_edit");
- RNA_string_set(kmi->ptr, "value_1", "DISABLED");
- RNA_string_set(kmi->ptr, "value_2", "ENABLED");
-
- /* for modes/object types that allow 'connected' mode, add the Alt O key */
- if (do_connected) {
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", OKEY, KM_PRESS, KM_ALT, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.proportional_edit");
- RNA_string_set(kmi->ptr, "value_1", "DISABLED");
- RNA_string_set(kmi->ptr, "value_2", "CONNECTED");
- }
-}
-
-/**
- * Map 1..3 to Vert/Edge/Face.
- */
-void ED_keymap_editmesh_elem_mode(struct wmKeyConfig *UNUSED(keyconf), struct wmKeyMap *keymap)
-{
- for (int i = 0; i < 4; i++) {
- const bool is_extend = (i & 1);
- const bool is_expand = (i & 2);
- const int key_modifier = (is_extend ? KM_SHIFT : 0) | (is_expand ? KM_CTRL : 0);
- for (int j = 0; j < 3; j++) {
- wmKeyMapItem *kmi = WM_keymap_add_item(
- keymap, "MESH_OT_select_mode", ONEKEY + j, KM_PRESS, key_modifier, 0);
- RNA_enum_set(kmi->ptr, "type", SCE_SELECT_VERTEX << j);
- if (is_extend) {
- RNA_boolean_set(kmi->ptr, "use_extend", true);
- }
- if (is_expand) {
- RNA_boolean_set(kmi->ptr, "use_expand", true);
- }
- }
- }
}
diff --git a/source/blender/editors/physics/physics_ops.c b/source/blender/editors/physics/physics_ops.c
index fc2a6bad561..06b0d557d86 100644
--- a/source/blender/editors/physics/physics_ops.c
+++ b/source/blender/editors/physics/physics_ops.c
@@ -35,7 +35,6 @@
#include "WM_types.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "ED_physics.h"
#include "ED_object.h"
@@ -112,48 +111,8 @@ static void operatortypes_particle(void)
static void keymap_particle(wmKeyConfig *keyconf)
{
- wmKeyMapItem *kmi;
- wmKeyMap *keymap;
-
- keymap = WM_keymap_ensure(keyconf, "Particle", 0, 0);
+ wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Particle", 0, 0);
keymap->poll = PE_poll;
-
- ED_keymap_template_select_all(keymap, "PARTICLE_OT_select_all");
-
- WM_keymap_add_item(keymap, "PARTICLE_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "PARTICLE_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
-
- kmi = WM_keymap_add_item(keymap, "PARTICLE_OT_select_linked", LKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "PARTICLE_OT_select_linked", LKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", true);
-
- WM_keymap_add_item(keymap, "PARTICLE_OT_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "PARTICLE_OT_delete", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "PARTICLE_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
- kmi = WM_keymap_add_item(keymap, "PARTICLE_OT_hide", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
- kmi = WM_keymap_add_item(keymap, "PARTICLE_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
-
- WM_keymap_add_item(keymap, "PARTICLE_OT_brush_edit", LEFTMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "PARTICLE_OT_brush_edit", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
-
- /* size radial control */
- kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.particle_edit.brush.size");
-
- /* size radial control */
- kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path_primary", "tool_settings.particle_edit.brush.strength");
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_particle_specials", WKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "PARTICLE_OT_weight_set", KKEY, KM_PRESS, KM_SHIFT, 0);
-
- ED_keymap_proportional_cycle(keyconf, keymap);
- ED_keymap_proportional_editmode(keyconf, keymap, false);
}
/******************************* boids *************************************/
@@ -202,16 +161,6 @@ static void operatortypes_dynamicpaint(void)
WM_operatortype_append(DPAINT_OT_output_toggle);
}
-//static void keymap_pointcache(wmWindowManager *wm)
-//{
-// wmKeyMap *keymap = WM_keymap_ensure(wm, "Pointcache", 0, 0);
-//
-// WM_keymap_add_item(keymap, "PHYSICS_OT_bake_all", AKEY, KM_PRESS, 0, 0);
-// WM_keymap_add_item(keymap, "PHYSICS_OT_free_all", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
-// WM_keymap_add_item(keymap, "PHYSICS_OT_bake_particle_system", PADMINUS, KM_PRESS, KM_CTRL, 0);
-// WM_keymap_add_item(keymap, "PHYSICS_OT_free_particle_system", LKEY, KM_PRESS, 0, 0);
-//}
-
/****************************** general ************************************/
void ED_operatortypes_physics(void)
@@ -226,5 +175,4 @@ void ED_operatortypes_physics(void)
void ED_keymap_physics(wmKeyConfig *keyconf)
{
keymap_particle(keyconf);
- //keymap_pointcache(keyconf);
}
diff --git a/source/blender/editors/screen/screen_ops.c b/source/blender/editors/screen/screen_ops.c
index 3325985c829..5b7ddbd1a8a 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -4871,14 +4871,6 @@ static void keymap_modal_set(wmKeyConfig *keyconf)
/* Standard Modal keymap ------------------------------------------------ */
keymap = WM_modalkeymap_add(keyconf, "Standard Modal Map", modal_items);
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, KM_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_ANY, KM_ANY, 0, KM_MODAL_APPLY);
- WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, KM_MODAL_APPLY);
- WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, KM_MODAL_APPLY);
-
- WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_PRESS, KM_ANY, 0, KM_MODAL_SNAP_ON);
- WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, KM_MODAL_SNAP_OFF);
-
WM_modalkeymap_assign(keymap, "SCREEN_OT_area_move");
}
@@ -4903,182 +4895,19 @@ static void blend_file_drop_copy(wmDrag *drag, wmDropBox *drop)
void ED_keymap_screen(wmKeyConfig *keyconf)
{
ListBase *lb;
- wmKeyMap *keymap;
- wmKeyMapItem *kmi;
/* Screen Editing ------------------------------------------------ */
- keymap = WM_keymap_ensure(keyconf, "Screen Editing", 0, 0);
-
- RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "modifier", 0);
- RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "modifier", 1);
- RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_actionzone", LEFTMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "modifier", 2);
-
- /* screen tools */
- WM_keymap_verify_item(keymap, "SCREEN_OT_area_split", EVT_ACTIONZONE_AREA, 0, 0, 0);
- WM_keymap_verify_item(keymap, "SCREEN_OT_area_join", EVT_ACTIONZONE_AREA, 0, 0, 0);
- WM_keymap_verify_item(keymap, "SCREEN_OT_area_dupli", EVT_ACTIONZONE_AREA, 0, KM_SHIFT, 0);
- WM_keymap_verify_item(keymap, "SCREEN_OT_area_swap", EVT_ACTIONZONE_AREA, 0, KM_CTRL, 0);
- WM_keymap_verify_item(keymap, "SCREEN_OT_region_scale", EVT_ACTIONZONE_REGION, 0, 0, 0);
- kmi = WM_keymap_add_item(keymap, "SCREEN_OT_screen_full_area", EVT_ACTIONZONE_FULLSCREEN, 0, 0, 0);
- RNA_boolean_set(kmi->ptr, "use_hide_panels", true);
- /* area move after action zones */
- WM_keymap_verify_item(keymap, "SCREEN_OT_area_move", LEFTMOUSE, KM_PRESS, 0, 0);
-
- WM_keymap_verify_item(keymap, "SCREEN_OT_area_options", RIGHTMOUSE, KM_PRESS, 0, 0);
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "SCREEN_OT_header", F9KEY, KM_PRESS, KM_ALT, 0);
-#endif
+ WM_keymap_ensure(keyconf, "Screen Editing", 0, 0);
/* Header Editing ------------------------------------------------ */
/* note: this is only used when the cursor is inside the header */
- keymap = WM_keymap_ensure(keyconf, "Header", 0, 0);
-
- WM_keymap_add_item(keymap, "SCREEN_OT_header_context_menu", RIGHTMOUSE, KM_PRESS, 0, 0);
+ WM_keymap_ensure(keyconf, "Header", 0, 0);
/* Screen General ------------------------------------------------ */
- keymap = WM_keymap_ensure(keyconf, "Screen", 0, 0);
-
- /* standard timers */
- WM_keymap_add_item(keymap, "SCREEN_OT_animation_step", TIMER0, KM_ANY, KM_ANY, 0);
- WM_keymap_add_item(keymap, "SCREEN_OT_region_blend", TIMERREGION, KM_ANY, KM_ANY, 0);
-
-#ifdef USE_WM_KEYMAP_27X
- RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_screen_set", RIGHTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "delta", 1);
- RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_screen_set", LEFTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "delta", -1);
-#endif
- WM_keymap_add_item(keymap, "SCREEN_OT_screen_full_area", SPACEKEY, KM_PRESS, KM_CTRL, 0);
- kmi = WM_keymap_add_item(keymap, "SCREEN_OT_screen_full_area", SPACEKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "use_hide_panels", true);
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "SCREEN_OT_screenshot", F3KEY, KM_PRESS, KM_CTRL, 0);
-#endif
-
- kmi = WM_keymap_add_item(keymap, "SCREEN_OT_space_context_cycle", TABKEY, KM_PRESS, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_NEXT);
- kmi = WM_keymap_add_item(keymap, "SCREEN_OT_space_context_cycle", TABKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_PREV);
-
- kmi = WM_keymap_add_item(keymap, "SCREEN_OT_workspace_cycle", PAGEDOWNKEY, KM_PRESS, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_NEXT);
- kmi = WM_keymap_add_item(keymap, "SCREEN_OT_workspace_cycle", PAGEUPKEY, KM_PRESS, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_PREV);
-
- /* tests */
- WM_keymap_add_item(keymap, "SCREEN_OT_region_quadview", QKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "SCREEN_OT_repeat_last", RKEY, KM_PRESS, KM_SHIFT, 0);
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_verify_item(keymap, "SCREEN_OT_repeat_history", RKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- WM_keymap_verify_item(keymap, "SCREEN_OT_region_flip", F5KEY, KM_PRESS, 0, 0);
- WM_keymap_verify_item(keymap, "SCREEN_OT_redo_last", F6KEY, KM_PRESS, 0, 0);
- WM_keymap_verify_item(keymap, "SCRIPT_OT_reload", F8KEY, KM_PRESS, 0, 0);
-#endif
-
- /* files */
- WM_keymap_add_item(keymap, "FILE_OT_execute", RETKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "FILE_OT_execute", PADENTER, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "FILE_OT_cancel", ESCKEY, KM_PRESS, 0, 0);
-
- /* undo */
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "ED_OT_undo", ZKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "ED_OT_redo", ZKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "ED_OT_undo_history", ZKEY, KM_PRESS, KM_ALT | KM_OSKEY, 0);
-#endif
-#endif
- WM_keymap_add_item(keymap, "ED_OT_undo", ZKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "ED_OT_redo", ZKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "ED_OT_undo_history", ZKEY, KM_PRESS, KM_ALT | KM_CTRL, 0);
-#endif
-
- /* render */
- kmi = WM_keymap_add_item(keymap, "RENDER_OT_render", F12KEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "use_viewport", true);
- kmi = WM_keymap_add_item(keymap, "RENDER_OT_render", F12KEY, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "animation", true);
- RNA_boolean_set(kmi->ptr, "use_viewport", true);
- WM_keymap_add_item(keymap, "RENDER_OT_view_cancel", ESCKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "RENDER_OT_view_show", F11KEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "RENDER_OT_play_rendered_anim", F11KEY, KM_PRESS, KM_CTRL, 0);
-
- /* user prefs */
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "SCREEN_OT_userpref_show", COMMAKEY, KM_PRESS, KM_OSKEY, 0);
-#endif
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "SCREEN_OT_userpref_show", UKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
-#endif
-
+ WM_keymap_ensure(keyconf, "Screen", 0, 0);
/* Anim Playback ------------------------------------------------ */
- keymap = WM_keymap_ensure(keyconf, "Frames", 0, 0);
-
- /* frame offsets */
-#ifdef USE_WM_KEYMAP_27X
- RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", UPARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "delta", 10);
- RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", DOWNARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "delta", -10);
-#endif
- RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", -1);
- RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "delta", 1);
-
-#ifdef USE_WM_KEYMAP_27X
- RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", WHEELDOWNMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "delta", 1);
- RNA_int_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_offset", WHEELUPMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "delta", -1);
-
- RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", UPARROWKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "end", true);
- RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", DOWNARROWKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "end", false);
-#endif
- RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", RIGHTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", true);
- RNA_boolean_set(WM_keymap_add_item(keymap, "SCREEN_OT_frame_jump", LEFTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "end", false);
-
- kmi = WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", UPARROWKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "next", true);
-
- kmi = WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", DOWNARROWKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "next", false);
-
- kmi = WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", MEDIALAST, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "next", true);
-
- kmi = WM_keymap_add_item(keymap, "SCREEN_OT_keyframe_jump", MEDIAFIRST, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "next", false);
-
-
-#ifdef USE_WM_KEYMAP_27X
- /* play (forward and backwards) */
- WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", AKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(
- WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", AKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0)->ptr,
- "reverse", true);
-#else
- /* play (forward and backwards) */
- WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", SPACEKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(
- WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", SPACEKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr,
- "reverse", true);
-#endif
- WM_keymap_add_item(keymap, "SCREEN_OT_animation_cancel", ESCKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", MEDIAPLAY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "SCREEN_OT_animation_cancel", MEDIASTOP, KM_PRESS, 0, 0);
-
- /* Alternative keys for animation and sequencer playing */
-#if 0 /* XXX: disabled for restoring later... bad implementation */
- keymap = WM_keymap_ensure(keyconf, "Frames", 0, 0);
- kmi = WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "cycle_speed", true);
-
- kmi = WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", LEFTARROWKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "reverse", true);
- RNA_boolean_set(kmi->ptr, "cycle_speed", true);
-
- WM_keymap_add_item(keymap, "SCREEN_OT_animation_play", DOWNARROWKEY, KM_PRESS, KM_ALT, 0);
-#endif
+ WM_keymap_ensure(keyconf, "Frames", 0, 0);
/* dropbox for entire window */
lb = WM_dropboxmap_find("Window", 0, 0);
diff --git a/source/blender/editors/sculpt_paint/paint_intern.h b/source/blender/editors/sculpt_paint/paint_intern.h
index 2f0b1ebd98f..b991755325a 100644
--- a/source/blender/editors/sculpt_paint/paint_intern.h
+++ b/source/blender/editors/sculpt_paint/paint_intern.h
@@ -306,20 +306,6 @@ typedef enum BrushStrokeMode {
BRUSH_STROKE_SMOOTH
} BrushStrokeMode;
-/* paint_ops.c */
-typedef enum {
- RC_COLOR = 1,
- RC_ROTATION = 2,
- RC_ZOOM = 4,
- RC_WEIGHT = 8,
- RC_SECONDARY_ROTATION = 16,
- RC_COLOR_OVERRIDE = 32,
-} RCFlags;
-
-void set_brush_rc_props(
- struct PointerRNA *ptr, const char *paint, const char *prop, const char *secondary_prop,
- RCFlags flags);
-
/* paint_hide.c */
typedef enum {
diff --git a/source/blender/editors/sculpt_paint/paint_ops.c b/source/blender/editors/sculpt_paint/paint_ops.c
index 0d33098293c..316372ece4e 100644
--- a/source/blender/editors/sculpt_paint/paint_ops.c
+++ b/source/blender/editors/sculpt_paint/paint_ops.c
@@ -524,19 +524,6 @@ static void PAINT_OT_brush_select(wmOperatorType *ot)
RNA_def_property_flag(prop, PROP_HIDDEN | PROP_SKIP_SAVE);
}
-static wmKeyMapItem *keymap_brush_select(
- wmKeyMap *keymap, ePaintMode paint_mode,
- int tool, int keymap_type,
- int keymap_modifier)
-{
- wmKeyMapItem *kmi;
- kmi = WM_keymap_add_item(keymap, "PAINT_OT_brush_select", keymap_type, KM_PRESS, keymap_modifier, 0);
- RNA_enum_set(kmi->ptr, "paint_mode", paint_mode);
- const char *prop_id = BKE_paint_get_tool_prop_id_from_paintmode(paint_mode);
- RNA_enum_set(kmi->ptr, prop_id, tool);
- return kmi;
-}
-
static int brush_uv_sculpt_tool_set_exec(bContext *C, wmOperator *op)
{
Brush *brush;
@@ -973,28 +960,6 @@ static void BRUSH_OT_stencil_reset_transform(wmOperatorType *ot)
}
-static void ed_keymap_stencil(wmKeyMap *keymap)
-{
- wmKeyMapItem *kmi;
-
- kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", STENCIL_TRANSLATE);
- kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "mode", STENCIL_SCALE);
- kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "mode", STENCIL_ROTATE);
-
- kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "mode", STENCIL_TRANSLATE);
- RNA_enum_set(kmi->ptr, "texmode", STENCIL_SECONDARY);
- kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "texmode", STENCIL_SECONDARY);
- RNA_enum_set(kmi->ptr, "mode", STENCIL_SCALE);
- kmi = WM_keymap_add_item(keymap, "BRUSH_OT_stencil_control", RIGHTMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "texmode", STENCIL_SECONDARY);
- RNA_enum_set(kmi->ptr, "mode", STENCIL_ROTATE);
-}
-
/**************************** registration **********************************/
void ED_operatormacros_paint(void)
@@ -1097,376 +1062,40 @@ void ED_operatortypes_paint(void)
WM_operatortype_append(PAINT_OT_mask_lasso_gesture);
}
-static void ed_keymap_paint_brush_size(wmKeyMap *keymap, const char *UNUSED(path))
-{
- wmKeyMapItem *kmi;
-
- kmi = WM_keymap_add_item(keymap, "BRUSH_OT_scale_size", LEFTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_float_set(kmi->ptr, "scalar", 0.9);
-
- kmi = WM_keymap_add_item(keymap, "BRUSH_OT_scale_size", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_float_set(kmi->ptr, "scalar", 10.0 / 9.0); // 1.1111....
-}
-
-static void set_brush_rc_path(
- PointerRNA *ptr, const char *brush_path,
- const char *output_name, const char *input_name)
-{
- char *path;
-
- path = BLI_sprintfN("%s.%s", brush_path, input_name);
- RNA_string_set(ptr, output_name, path);
- MEM_freeN(path);
-}
-
-void set_brush_rc_props(
- PointerRNA *ptr, const char *paint,
- const char *prop, const char *secondary_prop,
- RCFlags flags)
-{
- const char *ups_path = "tool_settings.unified_paint_settings";
- char *brush_path;
-
- brush_path = BLI_sprintfN("tool_settings.%s.brush", paint);
-
- set_brush_rc_path(ptr, brush_path, "data_path_primary", prop);
- if (secondary_prop) {
- set_brush_rc_path(ptr, ups_path, "use_secondary", secondary_prop);
- set_brush_rc_path(ptr, ups_path, "data_path_secondary", prop);
- }
- else {
- RNA_string_set(ptr, "use_secondary", "");
- RNA_string_set(ptr, "data_path_secondary", "");
- }
- set_brush_rc_path(ptr, brush_path, "color_path", "cursor_color_add");
- if (flags & RC_SECONDARY_ROTATION)
- set_brush_rc_path(ptr, brush_path, "rotation_path", "mask_texture_slot.angle");
- else
- set_brush_rc_path(ptr, brush_path, "rotation_path", "texture_slot.angle");
- RNA_string_set(ptr, "image_id", brush_path);
-
- if (flags & RC_COLOR) {
- set_brush_rc_path(ptr, brush_path, "fill_color_path", "color");
- }
- else {
- RNA_string_set(ptr, "fill_color_path", "");
- }
-
- if (flags & RC_COLOR_OVERRIDE) {
- RNA_string_set(ptr, "fill_color_override_path", "tool_settings.unified_paint_settings.color");
- RNA_string_set(ptr, "fill_color_override_test_path", "tool_settings.unified_paint_settings.use_unified_color");
- }
- else {
- RNA_string_set(ptr, "fill_color_override_path", "");
- RNA_string_set(ptr, "fill_color_override_test_path", "");
- }
-
- if (flags & RC_ZOOM)
- RNA_string_set(ptr, "zoom_path", "space_data.zoom");
- else
- RNA_string_set(ptr, "zoom_path", "");
-
- RNA_boolean_set(ptr, "secondary_tex", (flags & RC_SECONDARY_ROTATION) != 0);
-
- MEM_freeN(brush_path);
-}
-
-static void ed_keymap_paint_brush_radial_control(
- wmKeyMap *keymap, const char *paint,
- RCFlags flags)
-{
- wmKeyMapItem *kmi;
- /* only size needs to follow zoom, strength shows fixed size circle */
- int flags_nozoom = flags & (~RC_ZOOM);
- int flags_noradial_secondary = flags & (~(RC_SECONDARY_ROTATION | RC_ZOOM));
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, 0, 0);
- set_brush_rc_props(kmi->ptr, paint, "size", "use_unified_size", flags);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_SHIFT, 0);
- set_brush_rc_props(kmi->ptr, paint, "strength", "use_unified_strength", flags_nozoom);
-
- if (flags & RC_WEIGHT) {
- kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", WKEY, KM_PRESS, 0, 0);
- set_brush_rc_props(kmi->ptr, paint, "weight", "use_unified_weight", flags_nozoom);
- }
-
- if (flags & RC_ROTATION) {
- kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_CTRL, 0);
- set_brush_rc_props(kmi->ptr, paint, "texture_slot.angle", NULL, flags_noradial_secondary);
- }
-
- if (flags & RC_SECONDARY_ROTATION) {
- kmi = WM_keymap_add_item(keymap, "WM_OT_radial_control", FKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- set_brush_rc_props(kmi->ptr, paint, "mask_texture_slot.angle", NULL, flags_nozoom);
- }
-}
-
-static void paint_partial_visibility_keys(wmKeyMap *keymap)
-{
- wmKeyMapItem *kmi;
-
- /* Partial visibility */
- kmi = WM_keymap_add_item(keymap, "PAINT_OT_hide_show", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "action", PARTIALVIS_SHOW);
- RNA_enum_set(kmi->ptr, "area", PARTIALVIS_INSIDE);
- kmi = WM_keymap_add_item(keymap, "PAINT_OT_hide_show", HKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "action", PARTIALVIS_HIDE);
- RNA_enum_set(kmi->ptr, "area", PARTIALVIS_INSIDE);
- kmi = WM_keymap_add_item(keymap, "PAINT_OT_hide_show", HKEY, KM_PRESS, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "action", PARTIALVIS_SHOW);
- RNA_enum_set(kmi->ptr, "area", PARTIALVIS_ALL);
-}
-
-
-static void paint_keymap_curve(wmKeyMap *keymap)
-{
- wmKeyMapItem *kmi;
-
- WM_keymap_add_item(keymap, "PAINTCURVE_OT_add_point_slide", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "PAINTCURVE_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
- kmi = WM_keymap_add_item(keymap, "PAINTCURVE_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- WM_keymap_add_item(keymap, "PAINTCURVE_OT_slide", ACTIONMOUSE, KM_PRESS, 0, 0);
- kmi = WM_keymap_add_item(keymap, "PAINTCURVE_OT_slide", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "align", true);
- kmi = WM_keymap_add_item(keymap, "PAINTCURVE_OT_select", AKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "toggle", true);
-
- WM_keymap_add_item(keymap, "PAINTCURVE_OT_cursor", ACTIONMOUSE, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "PAINTCURVE_OT_delete_point", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "PAINTCURVE_OT_delete_point", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "PAINTCURVE_OT_draw", RETKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "PAINTCURVE_OT_draw", PADENTER, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0);
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0);
- WM_keymap_add_item(keymap, "TRANSFORM_OT_rotate", RKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "TRANSFORM_OT_resize", SKEY, KM_PRESS, 0, 0);
-}
-
void ED_keymap_paint(wmKeyConfig *keyconf)
{
wmKeyMap *keymap;
- wmKeyMapItem *kmi;
- int i;
keymap = WM_keymap_ensure(keyconf, "Paint Curve", 0, 0);
keymap->poll = paint_curve_poll;
- paint_keymap_curve(keymap);
-
/* Sculpt mode */
keymap = WM_keymap_ensure(keyconf, "Sculpt", 0, 0);
keymap->poll = sculpt_mode_poll;
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "mode", BRUSH_STROKE_NORMAL);
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "mode", BRUSH_STROKE_INVERT);
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_brush_stroke", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", BRUSH_STROKE_SMOOTH);
-
- /* Partial visibility, sculpt-only for now */
- paint_partial_visibility_keys(keymap);
-
- for (i = 0; i <= 5; i++)
- RNA_int_set(WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", ZEROKEY + i, KM_PRESS, KM_CTRL, 0)->ptr, "level", i);
-
- /* Clear mask */
- kmi = WM_keymap_add_item(keymap, "PAINT_OT_mask_flood_fill", MKEY, KM_PRESS, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "mode", PAINT_MASK_FLOOD_VALUE);
- RNA_float_set(kmi->ptr, "value", 0);
-
- /* Invert mask */
- kmi = WM_keymap_add_item(keymap, "PAINT_OT_mask_flood_fill", IKEY, KM_PRESS, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "mode", PAINT_MASK_INVERT);
-
- WM_keymap_add_item(keymap, "PAINT_OT_mask_lasso_gesture", LEFTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
-
- /* Toggle mask visibility */
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path", "scene.tool_settings.sculpt.show_mask");
-
- /* Toggle dynamic topology */
- WM_keymap_add_item(keymap, "SCULPT_OT_dynamic_topology_toggle", DKEY, KM_PRESS, KM_CTRL, 0);
-
- /* Dynamic-topology detail size
- *
- * This should be improved further, perhaps by showing a triangle
- * grid rather than brush alpha */
- kmi = WM_keymap_add_item(keymap, "SCULPT_OT_set_detail_size", DKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* multires switch */
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", PAGEUPKEY, KM_PRESS, 0, 0);
- RNA_int_set(kmi->ptr, "level", 1);
- RNA_boolean_set(kmi->ptr, "relative", true);
-
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_subdivision_set", PAGEDOWNKEY, KM_PRESS, 0, 0);
- RNA_int_set(kmi->ptr, "level", -1);
- RNA_boolean_set(kmi->ptr, "relative", true);
-
- ed_keymap_paint_brush_size(keymap, "tool_settings.sculpt.brush.size");
- ed_keymap_paint_brush_radial_control(keymap, "sculpt", RC_ROTATION);
-
- ed_keymap_stencil(keymap);
-
- keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_DRAW, XKEY, 0);
- keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_SMOOTH, SKEY, 0);
- keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_PINCH, PKEY, 0);
- keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_INFLATE, IKEY, 0);
- keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_GRAB, GKEY, 0);
- keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_LAYER, LKEY, 0);
- keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_FLATTEN, TKEY, KM_SHIFT);
- keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_CLAY, CKEY, 0);
- keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_CREASE, CKEY, KM_SHIFT);
- keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_SNAKE_HOOK, KKEY, 0);
- kmi = keymap_brush_select(keymap, ePaintSculpt, SCULPT_TOOL_MASK, MKEY, 0);
- RNA_boolean_set(kmi->ptr, "toggle", 1);
- RNA_boolean_set(kmi->ptr, "create_missing", 1);
-
- /* */
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", EKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush.stroke_method");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.sculpt.brush.use_smooth_stroke");
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_angle_control", RKEY, KM_PRESS, 0, 0);
-
/* Vertex Paint mode */
keymap = WM_keymap_ensure(keyconf, "Vertex Paint", 0, 0);
keymap->poll = vertex_paint_mode_poll;
- RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_vertex_paint", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "mode", BRUSH_STROKE_NORMAL);
- RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_vertex_paint", LEFTMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "mode", BRUSH_STROKE_INVERT);
- WM_keymap_add_item(keymap, "PAINT_OT_brush_colors_flip", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "PAINT_OT_sample_color", SKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "PAINT_OT_vertex_color_set", KKEY, KM_PRESS, KM_SHIFT, 0);
-
- ed_keymap_paint_brush_size(keymap, "tool_settings.vertex_paint.brush.size");
- ed_keymap_paint_brush_radial_control(keymap, "vertex_paint", RC_COLOR | RC_COLOR_OVERRIDE | RC_ROTATION);
-
- ed_keymap_stencil(keymap);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0); /* mask toggle */
- RNA_string_set(kmi->ptr, "data_path", "vertex_paint_object.data.use_paint_mask");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.vertex_paint.brush.use_smooth_stroke");
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_angle_control", RKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", EKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.vertex_paint.brush.stroke_method");
-
/* Weight Paint mode */
keymap = WM_keymap_ensure(keyconf, "Weight Paint", 0, 0);
keymap->poll = weight_paint_mode_poll;
- WM_keymap_verify_item(keymap, "PAINT_OT_weight_paint", LEFTMOUSE, KM_PRESS, 0, 0);
-
- /* these keys are from 2.4x but could be changed */
- WM_keymap_verify_item(keymap, "PAINT_OT_weight_sample", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_verify_item(keymap, "PAINT_OT_weight_sample_group", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_weight_gradient", LEFTMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "type", WPAINT_GRADIENT_TYPE_LINEAR);
- RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_weight_gradient", LEFTMOUSE, KM_PRESS, KM_ALT | KM_CTRL, 0)->ptr, "type", WPAINT_GRADIENT_TYPE_RADIAL);
-
- WM_keymap_add_item(keymap, "PAINT_OT_weight_set", KKEY, KM_PRESS, KM_SHIFT, 0);
-
- ed_keymap_paint_brush_size(keymap, "tool_settings.weight_paint.brush.size");
- ed_keymap_paint_brush_radial_control(keymap, "weight_paint", RC_WEIGHT);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", EKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.vertex_paint.brush.stroke_method");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0); /* face mask toggle */
- RNA_string_set(kmi->ptr, "data_path", "weight_paint_object.data.use_paint_mask");
-
- /* note, conflicts with vertex paint, but this is more useful */
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", VKEY, KM_PRESS, 0, 0); /* vert mask toggle */
- RNA_string_set(kmi->ptr, "data_path", "weight_paint_object.data.use_paint_mask_vertex");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.weight_paint.brush.use_smooth_stroke");
-
/*Weight paint's Vertex Selection Mode */
keymap = WM_keymap_ensure(keyconf, "Weight Paint Vertex Selection", 0, 0);
keymap->poll = vert_paint_poll;
- ED_keymap_template_select_all(keymap, "PAINT_OT_vert_select_all");
-
- WM_keymap_add_item(keymap, "VIEW3D_OT_select_box", BKEY, KM_PRESS, 0, 0);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "mode", SEL_OP_ADD);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_SHIFT | KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "mode", SEL_OP_SUB);
- WM_keymap_add_item(keymap, "VIEW3D_OT_select_circle", CKEY, KM_PRESS, 0, 0);
-
/* Image/Texture Paint mode */
keymap = WM_keymap_ensure(keyconf, "Image Paint", 0, 0);
keymap->poll = image_texture_paint_poll;
- RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_image_paint", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "mode", BRUSH_STROKE_NORMAL);
- RNA_enum_set(WM_keymap_add_item(keymap, "PAINT_OT_image_paint", LEFTMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "mode", BRUSH_STROKE_INVERT);
- WM_keymap_add_item(keymap, "PAINT_OT_brush_colors_flip", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "PAINT_OT_grab_clone", RIGHTMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "PAINT_OT_sample_color", SKEY, KM_PRESS, 0, 0);
-
- ed_keymap_paint_brush_size(keymap, "tool_settings.image_paint.brush.size");
- ed_keymap_paint_brush_radial_control(
- keymap, "image_paint",
- RC_COLOR | RC_COLOR_OVERRIDE | RC_ZOOM | RC_ROTATION | RC_SECONDARY_ROTATION);
-
- ed_keymap_stencil(keymap);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0); /* mask toggle */
- RNA_string_set(kmi->ptr, "data_path", "image_paint_object.data.use_paint_mask");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.image_paint.brush.use_smooth_stroke");
-
- WM_keymap_add_menu(keymap, "VIEW3D_MT_angle_control", RKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", EKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.image_paint.brush.stroke_method");
-
/* face-mask mode */
keymap = WM_keymap_ensure(keyconf, "Face Mask", 0, 0);
keymap->poll = facemask_paint_poll;
- ED_keymap_template_select_all(keymap, "PAINT_OT_face_select_all");
-
- kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_hide", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
- kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
- WM_keymap_add_item(keymap, "PAINT_OT_face_select_reveal", HKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "PAINT_OT_face_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
- kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_linked_pick", LKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "PAINT_OT_face_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", true);
-
keymap = WM_keymap_ensure(keyconf, "UV Sculpt", 0, 0);
keymap->poll = uv_sculpt_keymap_poll;
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", QKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_uv_sculpt");
-
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_uv_sculpt_stroke", LEFTMOUSE, KM_PRESS, 0, 0)->ptr, "mode", BRUSH_STROKE_NORMAL);
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_uv_sculpt_stroke", LEFTMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "mode", BRUSH_STROKE_INVERT);
- RNA_enum_set(WM_keymap_add_item(keymap, "SCULPT_OT_uv_sculpt_stroke", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", BRUSH_STROKE_SMOOTH);
-
- ed_keymap_paint_brush_size(keymap, "tool_settings.uv_sculpt.brush.size");
- ed_keymap_paint_brush_radial_control(keymap, "uv_sculpt", 0);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "BRUSH_OT_uv_sculpt_tool_set", SKEY, KM_PRESS, 0, 0)->ptr, "tool", UV_SCULPT_TOOL_RELAX);
- RNA_enum_set(WM_keymap_add_item(keymap, "BRUSH_OT_uv_sculpt_tool_set", PKEY, KM_PRESS, 0, 0)->ptr, "tool", UV_SCULPT_TOOL_PINCH);
- RNA_enum_set(WM_keymap_add_item(keymap, "BRUSH_OT_uv_sculpt_tool_set", GKEY, KM_PRESS, 0, 0)->ptr, "tool", UV_SCULPT_TOOL_GRAB);
-
/* paint stroke */
keymap = paint_stroke_modal_keymap(keyconf);
WM_modalkeymap_assign(keymap, "SCULPT_OT_brush_stroke");
diff --git a/source/blender/editors/sculpt_paint/paint_stroke.c b/source/blender/editors/sculpt_paint/paint_stroke.c
index e31a2617238..af2ed032931 100644
--- a/source/blender/editors/sculpt_paint/paint_stroke.c
+++ b/source/blender/editors/sculpt_paint/paint_stroke.c
@@ -938,10 +938,6 @@ struct wmKeyMap *paint_stroke_modal_keymap(struct wmKeyConfig *keyconf)
/* this function is called for each spacetype, only needs to add map once */
if (!keymap) {
keymap = WM_modalkeymap_add(keyconf, name, modal_items);
-
- /* items for modal map */
- WM_modalkeymap_add_item(
- keymap, ESCKEY, KM_PRESS, KM_ANY, 0, PAINT_STROKE_MODAL_CANCEL);
}
return keymap;
diff --git a/source/blender/editors/sculpt_paint/sculpt.c b/source/blender/editors/sculpt_paint/sculpt.c
index bbd2f53ec78..79f7ad9a135 100644
--- a/source/blender/editors/sculpt_paint/sculpt.c
+++ b/source/blender/editors/sculpt_paint/sculpt.c
@@ -6052,6 +6052,17 @@ static void SCULPT_OT_sample_detail_size(wmOperatorType *ot)
}
+/* Dynamic-topology detail size
+ *
+ * This should be improved further, perhaps by showing a triangle
+ * grid rather than brush alpha */
+static void set_brush_rc_props(PointerRNA *ptr, const char *prop)
+{
+ char *path = BLI_sprintfN("tool_settings.sculpt.brush.%s", prop);
+ RNA_string_set(ptr, "data_path_primary", path);
+ MEM_freeN(path);
+}
+
static int sculpt_set_detail_size_exec(bContext *C, wmOperator *UNUSED(op))
{
Sculpt *sd = CTX_data_tool_settings(C)->sculpt;
@@ -6062,15 +6073,15 @@ static int sculpt_set_detail_size_exec(bContext *C, wmOperator *UNUSED(op))
WM_operator_properties_create_ptr(&props_ptr, ot);
if (sd->flags & (SCULPT_DYNTOPO_DETAIL_CONSTANT | SCULPT_DYNTOPO_DETAIL_MANUAL)) {
- set_brush_rc_props(&props_ptr, "sculpt", "constant_detail_resolution", NULL, 0);
+ set_brush_rc_props(&props_ptr, "constant_detail_resolution");
RNA_string_set(&props_ptr, "data_path_primary", "tool_settings.sculpt.constant_detail_resolution");
}
else if (sd->flags & SCULPT_DYNTOPO_DETAIL_BRUSH) {
- set_brush_rc_props(&props_ptr, "sculpt", "constant_detail_resolution", NULL, 0);
+ set_brush_rc_props(&props_ptr, "constant_detail_resolution");
RNA_string_set(&props_ptr, "data_path_primary", "tool_settings.sculpt.detail_percent");
}
else {
- set_brush_rc_props(&props_ptr, "sculpt", "detail_size", NULL, 0);
+ set_brush_rc_props(&props_ptr, "detail_size");
RNA_string_set(&props_ptr, "data_path_primary", "tool_settings.sculpt.detail_size");
}
diff --git a/source/blender/editors/space_action/action_ops.c b/source/blender/editors/space_action/action_ops.c
index 24798938fa6..bbcba93370d 100644
--- a/source/blender/editors/space_action/action_ops.c
+++ b/source/blender/editors/space_action/action_ops.c
@@ -41,7 +41,6 @@
#include "ED_transform.h"
#include "ED_object.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "action_intern.h"
@@ -120,168 +119,12 @@ void ED_operatormacros_action(void)
/* ************************** registration - keymaps **********************************/
-static void action_keymap_keyframes(wmKeyConfig *keyconf, wmKeyMap *keymap)
-{
- wmKeyMapItem *kmi;
-
- /* action_select.c - selection tools */
- /* click-select: keyframe (replace) */
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_clickselect", SELECTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "column", false);
- RNA_boolean_set(kmi->ptr, "channel", false);
- /* click-select: all on same frame (replace) */
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "column", true);
- RNA_boolean_set(kmi->ptr, "channel", false);
- /* click-select: keyframe (add) */
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "column", false);
- RNA_boolean_set(kmi->ptr, "channel", false);
- /* click-select: all on same frame (add) */
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_ALT | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "column", true);
- RNA_boolean_set(kmi->ptr, "channel", false);
- /* click-select: all on same channel (replace) */
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "column", false);
- RNA_boolean_set(kmi->ptr, "channel", true);
- /* click-select: all on same channel (add) */
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_ALT | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "column", false);
- RNA_boolean_set(kmi->ptr, "channel", true);
-
- /* click-select: left/right */
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_enum_set(kmi->ptr, "mode", ACTKEYS_LRSEL_TEST);
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_enum_set(kmi->ptr, "mode", ACTKEYS_LRSEL_TEST);
-
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_leftright", LEFTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_enum_set(kmi->ptr, "mode", ACTKEYS_LRSEL_LEFT);
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_leftright", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_enum_set(kmi->ptr, "mode", ACTKEYS_LRSEL_RIGHT);
-
- /* deselect all */
- ED_keymap_template_select_all(keymap, "ACTION_OT_select_all");
-
- /* box_select */
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_box", BKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "axis_range", false);
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_box", BKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "axis_range", true);
-
- /* region select */
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", true);
-
- WM_keymap_add_item(keymap, "ACTION_OT_select_circle", CKEY, KM_PRESS, 0, 0);
-
- /* column select */
- RNA_enum_set(WM_keymap_add_item(keymap, "ACTION_OT_select_column", KKEY, KM_PRESS, 0, 0)->ptr, "mode", ACTKEYS_COLUMNSEL_KEYS);
- RNA_enum_set(WM_keymap_add_item(keymap, "ACTION_OT_select_column", KKEY, KM_PRESS, KM_CTRL, 0)->ptr, "mode", ACTKEYS_COLUMNSEL_CFRA);
- RNA_enum_set(WM_keymap_add_item(keymap, "ACTION_OT_select_column", KKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", ACTKEYS_COLUMNSEL_MARKERS_COLUMN);
- RNA_enum_set(WM_keymap_add_item(keymap, "ACTION_OT_select_column", KKEY, KM_PRESS, KM_ALT, 0)->ptr, "mode", ACTKEYS_COLUMNSEL_MARKERS_BETWEEN);
-
- /* select more/less */
- WM_keymap_add_item(keymap, "ACTION_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "ACTION_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
-
- /* select linked */
- WM_keymap_add_item(keymap, "ACTION_OT_select_linked", LKEY, KM_PRESS, 0, 0);
-
-
- /* action_edit.c */
- /* jump to selected keyframes */
- WM_keymap_add_item(keymap, "ACTION_OT_frame_jump", GKEY, KM_PRESS, KM_CTRL, 0);
-
- /* menu + single-step transform */
- WM_keymap_add_menu_pie(keymap, "DOPESHEET_MT_snap_pie", SKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "ACTION_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0);
-
- /* menu + set setting */
- WM_keymap_add_item(keymap, "ACTION_OT_handle_type", VKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "ACTION_OT_interpolation_type", TKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "ACTION_OT_extrapolation_type", EKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "ACTION_OT_keyframe_type", RKEY, KM_PRESS, 0, 0);
-
- /* specials */
- WM_keymap_add_menu(keymap, "DOPESHEET_MT_specials", WKEY, KM_PRESS, 0, 0);
-
- /* destructive */
- WM_keymap_add_item(keymap, "ACTION_OT_sample", OKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
-
- WM_keymap_add_menu(keymap, "DOPESHEET_MT_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_menu(keymap, "DOPESHEET_MT_delete", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "ACTION_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "ACTION_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0);
-
- /* copy/paste */
- WM_keymap_add_item(keymap, "ACTION_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "ACTION_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_paste", VKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "flipped", true);
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "ACTION_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "ACTION_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
- kmi = WM_keymap_add_item(keymap, "ACTION_OT_paste", VKEY, KM_PRESS, KM_OSKEY | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "flipped", true);
-#endif
-
- /* auto-set range */
- WM_keymap_add_item(keymap, "ACTION_OT_previewrange_set", PKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- WM_keymap_add_item(keymap, "ACTION_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
-#ifdef WITH_INPUT_NDOF
- WM_keymap_add_item(keymap, "ACTION_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
-#endif
- WM_keymap_add_item(keymap, "ACTION_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "ACTION_OT_view_frame", PAD0, KM_PRESS, 0, 0);
-
-
- /* animation module */
- /* channels list
- * NOTE: these operators were originally for the channels list, but are added here too for convenience...
- */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_editable_toggle", TABKEY, KM_PRESS, 0, 0);
-
- /* find (i.e. a shortcut for setting the name filter) */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_find", FKEY, KM_PRESS, KM_CTRL, 0);
-
- /* transform system */
- transform_keymap_for_space(keyconf, keymap, SPACE_ACTION);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", OKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_proportional_action");
- ED_keymap_proportional_cycle(keyconf, keymap);
-
- /* special markers hotkeys for anim editors: see note in definition of this function */
- ED_marker_keymap_animedit_conflictfree(keymap);
-}
-
/* --------------- */
void action_keymap(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap;
-
/* keymap for all regions */
- keymap = WM_keymap_ensure(keyconf, "Dopesheet Generic", SPACE_ACTION, 0);
-
- /* region management... */
- WM_keymap_add_item(keymap, "ACTION_OT_properties", NKEY, KM_PRESS, 0, 0);
-
+ WM_keymap_ensure(keyconf, "Dopesheet Generic", SPACE_ACTION, 0);
/* channels */
/* Channels are not directly handled by the Action Editor module, but are inherited from the Animation module.
@@ -290,6 +133,5 @@ void action_keymap(wmKeyConfig *keyconf)
*/
/* keyframes */
- keymap = WM_keymap_ensure(keyconf, "Dopesheet", SPACE_ACTION, 0);
- action_keymap_keyframes(keyconf, keymap);
+ WM_keymap_ensure(keyconf, "Dopesheet", SPACE_ACTION, 0);
}
diff --git a/source/blender/editors/space_action/space_action.c b/source/blender/editors/space_action/space_action.c
index dbbbe6d0edb..15587a5f39d 100644
--- a/source/blender/editors/space_action/space_action.c
+++ b/source/blender/editors/space_action/space_action.c
@@ -299,8 +299,6 @@ static void action_channel_region_init(wmWindowManager *wm, ARegion *ar)
keymap = WM_keymap_ensure(wm->defaultconf, "Animation Channels", 0, 0);
WM_event_add_keymap_handler_bb(&ar->handlers, keymap, &ar->v2d.mask, &ar->winrct);
- WM_keymap_add_menu(keymap, "DOPESHEET_MT_specials_channels", WKEY, KM_PRESS, 0, 0);
-
keymap = WM_keymap_ensure(wm->defaultconf, "Dopesheet Generic", SPACE_ACTION, 0);
WM_event_add_keymap_handler(&ar->handlers, keymap);
}
diff --git a/source/blender/editors/space_api/spacetypes.c b/source/blender/editors/space_api/spacetypes.c
index 3e343d5e35a..afaa3325f6b 100644
--- a/source/blender/editors/space_api/spacetypes.c
+++ b/source/blender/editors/space_api/spacetypes.c
@@ -68,6 +68,7 @@
#include "ED_mask.h"
#include "ED_sequencer.h"
#include "ED_gizmo_library.h"
+#include "ED_transform.h"
#include "io_ops.h"
@@ -216,6 +217,8 @@ void ED_spacetypes_keymap(wmKeyConfig *keyconf)
ED_keymap_view2d(keyconf);
ED_keymap_ui(keyconf);
+ ED_keymap_transform(keyconf);
+
spacetypes = BKE_spacetypes_list();
for (stype = spacetypes->first; stype; stype = stype->next) {
if (stype->keymap)
diff --git a/source/blender/editors/space_buttons/space_buttons.c b/source/blender/editors/space_buttons/space_buttons.c
index a4fc8fbdcc2..1f1f238daf6 100644
--- a/source/blender/editors/space_buttons/space_buttons.c
+++ b/source/blender/editors/space_buttons/space_buttons.c
@@ -353,15 +353,7 @@ static void buttons_operatortypes(void)
static void buttons_keymap(struct wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Property Editor", SPACE_BUTS, 0);
- wmKeyMapItem *kmi;
-
- WM_keymap_add_item(keymap, "BUTTONS_OT_context_menu", RIGHTMOUSE, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "SCREEN_OT_space_context_cycle", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_PREV);
- kmi = WM_keymap_add_item(keymap, "SCREEN_OT_space_context_cycle", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "direction", SPACE_CONTEXT_CYCLE_NEXT);
+ WM_keymap_ensure(keyconf, "Property Editor", SPACE_BUTS, 0);
}
/* add handlers, stuff you only do once or on area/region changes */
diff --git a/source/blender/editors/space_clip/space_clip.c b/source/blender/editors/space_clip/space_clip.c
index a0b2e95817d..10f7777ee31 100644
--- a/source/blender/editors/space_clip/space_clip.c
+++ b/source/blender/editors/space_clip/space_clip.c
@@ -56,7 +56,6 @@
#include "ED_space_api.h"
#include "ED_screen.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "ED_clip.h"
#include "ED_transform.h"
#include "ED_uvedit.h" /* just for ED_image_draw_cursor */
@@ -539,264 +538,18 @@ static void clip_operatortypes(void)
static void clip_keymap(struct wmKeyConfig *keyconf)
{
- wmKeyMap *keymap;
- wmKeyMapItem *kmi;
-
/* ******** Global hotkeys avalaible for all regions ******** */
-
- keymap = WM_keymap_ensure(keyconf, "Clip", SPACE_CLIP, 0);
-
- WM_keymap_add_item(keymap, "CLIP_OT_open", OKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "CLIP_OT_tools", TKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_properties", NKEY, KM_PRESS, 0, 0);
-
- /* 2d tracking */
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_track_markers", LEFTARROWKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "backwards", true);
- RNA_boolean_set(kmi->ptr, "sequence", false);
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_track_markers", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "backwards", false);
- RNA_boolean_set(kmi->ptr, "sequence", false);
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_track_markers", TKEY, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "backwards", false);
- RNA_boolean_set(kmi->ptr, "sequence", true);
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_track_markers", TKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "backwards", true);
- RNA_boolean_set(kmi->ptr, "sequence", true);
-
- /* mode */
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle_enum", TABKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.mode");
- RNA_string_set(kmi->ptr, "value_1", "TRACKING");
- RNA_string_set(kmi->ptr, "value_2", "MASK");
-
- WM_keymap_add_item(keymap, "CLIP_OT_solve_camera", SKEY, KM_PRESS, KM_SHIFT, 0);
-
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_set_solver_keyframe", QKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "keyframe", 0);
-
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_set_solver_keyframe", EKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "keyframe", 1);
-
- /* io/playback */
- WM_keymap_add_item(keymap, "CLIP_OT_prefetch", PKEY, KM_PRESS, 0, 0);
+ WM_keymap_ensure(keyconf, "Clip", SPACE_CLIP, 0);
/* ******** Hotkeys avalaible for main region only ******** */
-
- keymap = WM_keymap_ensure(keyconf, "Clip Editor", SPACE_CLIP, 0);
+ WM_keymap_ensure(keyconf, "Clip Editor", SPACE_CLIP, 0);
// keymap->poll = ED_space_clip_tracking_poll;
- /* ** View/navigation ** */
-
- WM_keymap_add_item(keymap, "CLIP_OT_view_pan", MIDDLEMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_view_pan", MIDDLEMOUSE, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_view_pan", MOUSEPAN, 0, 0, 0);
-
- WM_keymap_add_item(keymap, "CLIP_OT_view_zoom", MIDDLEMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_view_zoom", MOUSEZOOM, 0, 0, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_view_zoom", MOUSEPAN, 0, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_in", WHEELINMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_out", WHEELOUTMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_in", PADPLUSKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_out", PADMINUS, KM_PRESS, 0, 0);
-
- /* ctrl now works as well, shift + numpad works as arrow keys on Windows */
- RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD8, KM_PRESS, KM_CTRL, 0)->ptr, "ratio", 8.0f);
- RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD4, KM_PRESS, KM_CTRL, 0)->ptr, "ratio", 4.0f);
- RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD2, KM_PRESS, KM_CTRL, 0)->ptr, "ratio", 2.0f);
- RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD8, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 8.0f);
- RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD4, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 4.0f);
- RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD2, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 2.0f);
-
- RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD1, KM_PRESS, 0, 0)->ptr, "ratio", 1.0f);
- RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD2, KM_PRESS, 0, 0)->ptr, "ratio", 0.5f);
- RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD4, KM_PRESS, 0, 0)->ptr, "ratio", 0.25f);
- RNA_float_set(WM_keymap_add_item(keymap, "CLIP_OT_view_zoom_ratio", PAD8, KM_PRESS, 0, 0)->ptr, "ratio", 0.125f);
-
- WM_keymap_add_item(keymap, "CLIP_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_view_all", FKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "fit_view", true);
-
- WM_keymap_add_item(keymap, "CLIP_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
-
-#ifdef WITH_INPUT_NDOF
- WM_keymap_add_item(keymap, "CLIP_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_view_ndof", NDOF_MOTION, 0, 0, 0);
-#endif
-
- /* jump to special frame */
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_frame_jump", LEFTARROWKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "position", 0);
-
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_frame_jump", RIGHTARROWKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "position", 1);
-
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_frame_jump", LEFTARROWKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "position", 2);
-
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_frame_jump", RIGHTARROWKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "position", 3);
-
- /* "timeline" */
- WM_keymap_add_item(keymap, "CLIP_OT_change_frame", LEFTMOUSE, KM_PRESS, 0, 0);
-
- /* selection */
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- ED_keymap_template_select_all(keymap, "CLIP_OT_select_all");
-
- WM_keymap_add_item(keymap, "CLIP_OT_select_box", BKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_select_circle", CKEY, KM_PRESS, 0, 0);
- WM_keymap_add_menu(keymap, "CLIP_MT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0);
-
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_SHIFT | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", true);
-
- /* marker */
- WM_keymap_add_item(keymap, "CLIP_OT_add_marker_slide", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "CLIP_OT_delete_marker", XKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_delete_marker", DELKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "CLIP_OT_slide_marker", LEFTMOUSE, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_disable_markers", DKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "action", 2); /* toggle */
-
- /* tracks */
- WM_keymap_add_item(keymap, "CLIP_OT_delete_track", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_delete_track", DELKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_lock_tracks", LKEY, KM_PRESS, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "action", 0); /* lock */
-
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_lock_tracks", LKEY, KM_PRESS, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "action", 1); /* unlock */
-
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_hide_tracks", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
-
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_hide_tracks", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
-
- WM_keymap_add_item(keymap, "CLIP_OT_hide_tracks_clear", HKEY, KM_PRESS, KM_ALT, 0);
-
- /* plane tracks */
- WM_keymap_add_item(keymap, "CLIP_OT_slide_plane_marker", ACTIONMOUSE, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "CLIP_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_keyframe_delete", IKEY, KM_PRESS, KM_ALT, 0);
-
- /* clean-up */
- WM_keymap_add_item(keymap, "CLIP_OT_join_tracks", JKEY, KM_PRESS, KM_CTRL, 0);
-
- /* menus */
- WM_keymap_add_menu(keymap, "CLIP_MT_tracking_specials", WKEY, KM_PRESS, 0, 0);
-
- /* display */
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", LKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.lock_selection");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", DKEY, KM_PRESS, KM_ALT, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.show_disabled");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SKEY, KM_PRESS, KM_ALT, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.show_marker_search");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", MKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.use_mute_footage");
-
- transform_keymap_for_space(keyconf, keymap, SPACE_CLIP);
-
- /* clean-up */
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_clear_track_path", TKEY, KM_PRESS, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "action", TRACK_CLEAR_REMAINED);
- RNA_boolean_set(kmi->ptr, "clear_active", false);
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_clear_track_path", TKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "action", TRACK_CLEAR_UPTO);
- RNA_boolean_set(kmi->ptr, "clear_active", false);
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_clear_track_path", TKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "action", TRACK_CLEAR_ALL);
- RNA_boolean_set(kmi->ptr, "clear_active", false);
-
- /* Cursor */
- WM_keymap_add_item(keymap, "CLIP_OT_cursor_set", ACTIONMOUSE, KM_PRESS, 0, 0);
-
- /* pivot point */
- WM_keymap_add_menu_pie(keymap, "CLIP_MT_pivot_pie", PERIODKEY, KM_PRESS, 0, 0);
-
- /* Copy-paste */
- WM_keymap_add_item(keymap, "CLIP_OT_copy_tracks", CKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_paste_tracks", VKEY, KM_PRESS, KM_CTRL, 0);
/* ******** Hotkeys avalaible for preview region only ******** */
-
- keymap = WM_keymap_ensure(keyconf, "Clip Graph Editor", SPACE_CLIP, 0);
-
- /* "timeline" */
- WM_keymap_add_item(keymap, "CLIP_OT_change_frame", ACTIONMOUSE, KM_PRESS, 0, 0);
-
- /* selection */
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_graph_select", SELECTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_graph_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- ED_keymap_template_select_all(keymap, "CLIP_OT_graph_select_all_markers");
-
- WM_keymap_add_item(keymap, "CLIP_OT_graph_select_box", BKEY, KM_PRESS, 0, 0);
-
- /* delete */
- WM_keymap_add_item(keymap, "CLIP_OT_graph_delete_curve", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_graph_delete_curve", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "CLIP_OT_graph_delete_knot", XKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "CLIP_OT_graph_delete_knot", DELKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* view */
- WM_keymap_add_item(keymap, "CLIP_OT_graph_view_all", HOMEKEY, KM_PRESS, 0, 0);
-#ifdef WITH_INPUT_NDOF
- WM_keymap_add_item(keymap, "CLIP_OT_graph_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
-#endif
- WM_keymap_add_item(keymap, "CLIP_OT_graph_center_current_frame", PAD0, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", LKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.lock_time_cursor");
-
- /* clean-up */
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_clear_track_path", TKEY, KM_PRESS, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "action", TRACK_CLEAR_REMAINED);
- RNA_boolean_set(kmi->ptr, "clear_active", true);
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_clear_track_path", TKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "action", TRACK_CLEAR_UPTO);
- RNA_boolean_set(kmi->ptr, "clear_active", true);
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_clear_track_path", TKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "action", TRACK_CLEAR_ALL);
- RNA_boolean_set(kmi->ptr, "clear_active", true);
-
- /* tracks */
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_graph_disable_markers", DKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "action", 2); /* toggle */
-
- transform_keymap_for_space(keyconf, keymap, SPACE_CLIP);
+ WM_keymap_ensure(keyconf, "Clip Graph Editor", SPACE_CLIP, 0);
/* ******** Hotkeys avalaible for channels region only ******** */
-
- keymap = WM_keymap_ensure(keyconf, "Clip Dopesheet Editor", SPACE_CLIP, 0);
-
- kmi = WM_keymap_add_item(keymap, "CLIP_OT_dopesheet_select_channel", LEFTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", true); /* toggle */
-
- WM_keymap_add_item(keymap, "CLIP_OT_dopesheet_view_all", HOMEKEY, KM_PRESS, 0, 0);
-#ifdef WITH_INPUT_NDOF
- WM_keymap_add_item(keymap, "CLIP_OT_dopesheet_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
-#endif
+ WM_keymap_ensure(keyconf, "Clip Dopesheet Editor", SPACE_CLIP, 0);
}
/* DO NOT make this static, this hides the symbol and breaks API generation script. */
diff --git a/source/blender/editors/space_console/space_console.c b/source/blender/editors/space_console/space_console.c
index ddfeb2119d9..596d66da9a6 100644
--- a/source/blender/editors/space_console/space_console.c
+++ b/source/blender/editors/space_console/space_console.c
@@ -265,87 +265,7 @@ static void console_operatortypes(void)
static void console_keymap(struct wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Console", SPACE_CONSOLE, 0);
- wmKeyMapItem *kmi;
-
-#ifdef __APPLE__
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", LEFTARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", LINE_BEGIN);
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", RIGHTARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", LINE_END);
-#endif
-
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", LEFTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", PREV_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", RIGHTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", NEXT_WORD);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", HOMEKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_BEGIN);
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", ENDKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_END);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
- RNA_boolean_set(kmi->ptr, "reverse", false);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
- RNA_boolean_set(kmi->ptr, "reverse", true);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
- RNA_boolean_set(kmi->ptr, "reverse", false);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADMINUS, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
- RNA_boolean_set(kmi->ptr, "reverse", true);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_CHAR);
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_CHAR);
-
- RNA_boolean_set(WM_keymap_add_item(keymap, "CONSOLE_OT_history_cycle", UPARROWKEY, KM_PRESS, 0, 0)->ptr, "reverse", true);
- RNA_boolean_set(WM_keymap_add_item(keymap, "CONSOLE_OT_history_cycle", DOWNARROWKEY, KM_PRESS, 0, 0)->ptr, "reverse", false);
-
-#if 0
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", LEFTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", PREV_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", RIGHTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", NEXT_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", UPARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_LINE);
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", DOWNARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_LINE);
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", PAGEUPKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_PAGE);
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_move", PAGEDOWNKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_PAGE);
-#endif
-
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_delete", DELKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_NEXT_CHAR);
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_PREV_CHAR);
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_delete", BACKSPACEKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", DEL_PREV_CHAR); /* same as above [#26623] */
-
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_delete", DELKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", DEL_NEXT_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "CONSOLE_OT_delete", BACKSPACEKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", DEL_PREV_WORD);
-
- WM_keymap_add_item(keymap, "CONSOLE_OT_clear_line", RETKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "CONSOLE_OT_clear_line", PADENTER, KM_PRESS, KM_SHIFT, 0);
-
-#ifdef WITH_PYTHON
- kmi = WM_keymap_add_item(keymap, "CONSOLE_OT_execute", RETKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "interactive", true);
- kmi = WM_keymap_add_item(keymap, "CONSOLE_OT_execute", PADENTER, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "interactive", true);
-
- WM_keymap_add_item(keymap, "CONSOLE_OT_autocomplete", SPACEKEY, KM_PRESS, KM_CTRL, 0); /* python operator - space_text.py */
-#endif
-
- WM_keymap_add_item(keymap, "CONSOLE_OT_copy_as_script", CKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "CONSOLE_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "CONSOLE_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "CONSOLE_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "CONSOLE_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
-#endif
-
- WM_keymap_add_item(keymap, "CONSOLE_OT_select_set", LEFTMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CONSOLE_OT_select_word", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
-
- RNA_string_set(WM_keymap_add_item(keymap, "CONSOLE_OT_insert", TABKEY, KM_PRESS, KM_CTRL, 0)->ptr, "text", "\t"); /* fake tabs */
-
- WM_keymap_add_item(keymap, "CONSOLE_OT_indent", TABKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "CONSOLE_OT_unindent", TABKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "CONSOLE_OT_insert", KM_TEXTINPUT, KM_ANY, KM_ANY, 0); // last!
+ WM_keymap_ensure(keyconf, "Console", SPACE_CONSOLE, 0);
}
/****************** header region ******************/
diff --git a/source/blender/editors/space_file/space_file.c b/source/blender/editors/space_file/space_file.c
index cdad11d8ad0..e0413e48346 100644
--- a/source/blender/editors/space_file/space_file.c
+++ b/source/blender/editors/space_file/space_file.c
@@ -489,137 +489,14 @@ static void file_operatortypes(void)
/* NOTE: do not add .blend file reading on this level */
static void file_keymap(struct wmKeyConfig *keyconf)
{
- wmKeyMapItem *kmi;
/* keys for all regions */
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "File Browser", SPACE_FILE, 0);
-
- /* More common 'fliebrowser-like navigation' shortcuts. */
- WM_keymap_add_item(keymap, "FILE_OT_parent", UPARROWKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "FILE_OT_previous", LEFTARROWKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "FILE_OT_next", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "FILE_OT_refresh", RKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "FILE_OT_parent", PKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "FILE_OT_previous", BACKSPACEKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "FILE_OT_next", BACKSPACEKEY, KM_PRESS, KM_SHIFT, 0);
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", HKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.params.show_hidden");
- WM_keymap_add_item(keymap, "FILE_OT_directory_new", IKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "FILE_OT_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "FILE_OT_delete", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_verify_item(keymap, "FILE_OT_smoothscroll", TIMER1, KM_ANY, KM_ANY, 0);
-
- WM_keymap_add_item(keymap, "FILE_OT_bookmark_toggle", TKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "FILE_OT_bookmark_add", BKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_ensure(keyconf, "File Browser", SPACE_FILE, 0);
/* keys for main region */
- keymap = WM_keymap_ensure(keyconf, "File Browser Main", SPACE_FILE, 0);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_execute", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
- RNA_boolean_set(kmi->ptr, "need_active", true);
-
- WM_keymap_add_item(keymap, "FILE_OT_refresh", PADPERIOD, KM_PRESS, 0, 0);
-
- /* left mouse selects and opens */
- WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, 0, 0);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select", LEFTMOUSE, KM_CLICK, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "fill", true);
-
- /* right mouse selects without opening */
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_CLICK, 0, 0);
- RNA_boolean_set(kmi->ptr, "open", false);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_CLICK, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "open", false);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select", RIGHTMOUSE, KM_CLICK, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "fill", true);
- RNA_boolean_set(kmi->ptr, "open", false);
-
-
- /* arrow keys navigation (walk selecting) */
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", UPARROWKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_UP);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", UPARROWKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_UP);
- RNA_boolean_set(kmi->ptr, "extend", true);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", UPARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_UP);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "fill", true);
-
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", DOWNARROWKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_DOWN);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", DOWNARROWKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_DOWN);
- RNA_boolean_set(kmi->ptr, "extend", true);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", DOWNARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_DOWN);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "fill", true);
-
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", LEFTARROWKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_LEFT);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", LEFTARROWKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_LEFT);
- RNA_boolean_set(kmi->ptr, "extend", true);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", LEFTARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_LEFT);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "fill", true);
-
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", RIGHTARROWKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_RIGHT);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", RIGHTARROWKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_RIGHT);
- RNA_boolean_set(kmi->ptr, "extend", true);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_select_walk", RIGHTARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "direction", FILE_SELECT_WALK_RIGHT);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "fill", true);
-
-
- /* front and back mouse folder navigation */
- WM_keymap_add_item(keymap, "FILE_OT_previous", BUTTON4MOUSE, KM_CLICK, 0, 0);
- WM_keymap_add_item(keymap, "FILE_OT_next", BUTTON5MOUSE, KM_CLICK, 0, 0);
-
- WM_keymap_add_item(keymap, "FILE_OT_select_all", AKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "FILE_OT_select_box", BKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "FILE_OT_select_box", EVT_TWEAK_L, KM_ANY, 0, 0);
- WM_keymap_add_item(keymap, "FILE_OT_rename", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "FILE_OT_highlight", MOUSEMOVE, KM_ANY, KM_ANY, 0);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, 0, 0);
- RNA_int_set(kmi->ptr, "increment", 1);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_int_set(kmi->ptr, "increment", 10);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- RNA_int_set(kmi->ptr, "increment", 100);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADMINUS, KM_PRESS, 0, 0);
- RNA_int_set(kmi->ptr, "increment", -1);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADMINUS, KM_PRESS, KM_SHIFT, 0);
- RNA_int_set(kmi->ptr, "increment", -10);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADMINUS, KM_PRESS, KM_CTRL, 0);
- RNA_int_set(kmi->ptr, "increment", -100);
-
+ WM_keymap_ensure(keyconf, "File Browser Main", SPACE_FILE, 0);
/* keys for button region (top) */
- keymap = WM_keymap_ensure(keyconf, "File Browser Buttons", SPACE_FILE, 0);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, 0, 0);
- RNA_int_set(kmi->ptr, "increment", 1);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_int_set(kmi->ptr, "increment", 10);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- RNA_int_set(kmi->ptr, "increment", 100);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADMINUS, KM_PRESS, 0, 0);
- RNA_int_set(kmi->ptr, "increment", -1);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADMINUS, KM_PRESS, KM_SHIFT, 0);
- RNA_int_set(kmi->ptr, "increment", -10);
- kmi = WM_keymap_add_item(keymap, "FILE_OT_filenum", PADMINUS, KM_PRESS, KM_CTRL, 0);
- RNA_int_set(kmi->ptr, "increment", -100);
+ WM_keymap_ensure(keyconf, "File Browser Buttons", SPACE_FILE, 0);
}
diff --git a/source/blender/editors/space_graph/graph_ops.c b/source/blender/editors/space_graph/graph_ops.c
index b3a72066b79..1b3d154f804 100644
--- a/source/blender/editors/space_graph/graph_ops.c
+++ b/source/blender/editors/space_graph/graph_ops.c
@@ -49,7 +49,6 @@
#include "ED_markers.h"
#include "ED_screen.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "ED_transform.h"
#include "ED_object.h"
@@ -491,212 +490,10 @@ void ED_operatormacros_graph(void)
/* ************************** registration - keymaps **********************************/
-static void graphedit_keymap_keyframes(wmKeyConfig *keyconf, wmKeyMap *keymap)
-{
- wmKeyMapItem *kmi;
-
- /* view */
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", HKEY, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.show_handles");
-
- /* NOTE: 'ACTIONMOUSE' not 'LEFTMOUSE', as user may have swapped mouse-buttons
- * This keymap is supposed to override ANIM_OT_change_frame, which does the same except it doesn't do y-values
- */
- WM_keymap_add_item(keymap, "GRAPH_OT_cursor_set", ACTIONMOUSE, KM_PRESS, 0, 0);
-
-
- /* graph_select.c - selection tools */
- /* click-select: keyframe (replace) */
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_clickselect", SELECTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "curves", false);
- RNA_boolean_set(kmi->ptr, "column", false);
- /* click-select: all keyframes on same frame (replace) */
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "curves", false);
- RNA_boolean_set(kmi->ptr, "column", true);
- /* click-select: keyframe (add) */
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "curves", false);
- RNA_boolean_set(kmi->ptr, "column", false);
- /* click-select: all keyframes on same frame (add) */
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_ALT | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "curves", false);
- RNA_boolean_set(kmi->ptr, "column", true);
- /* click-select: all keyframes in same curve (replace) */
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "curves", true);
- RNA_boolean_set(kmi->ptr, "column", false);
- /* click-select: all keyframes in same curve (add) */
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_clickselect", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_ALT | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "curves", true);
- RNA_boolean_set(kmi->ptr, "column", false);
-
- /* click-select left/right */
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_enum_set(kmi->ptr, "mode", GRAPHKEYS_LRSEL_TEST);
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_enum_set(kmi->ptr, "mode", GRAPHKEYS_LRSEL_TEST);
-
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_leftright", LEFTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_enum_set(kmi->ptr, "mode", GRAPHKEYS_LRSEL_LEFT);
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_leftright", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_enum_set(kmi->ptr, "mode", GRAPHKEYS_LRSEL_RIGHT);
-
- /* deselect all */
- ED_keymap_template_select_all(keymap, "GRAPH_OT_select_all");
-
- /* box_select */
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_box", BKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "axis_range", false);
- RNA_boolean_set(kmi->ptr, "include_handles", false);
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_box", BKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "axis_range", true);
- RNA_boolean_set(kmi->ptr, "include_handles", false);
-
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_box", BKEY, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "axis_range", false);
- RNA_boolean_set(kmi->ptr, "include_handles", true);
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_box", BKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "axis_range", true);
- RNA_boolean_set(kmi->ptr, "include_handles", true);
-
- /* region select */
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", true);
-
- WM_keymap_add_item(keymap, "GRAPH_OT_select_circle", CKEY, KM_PRESS, 0, 0);
-
- /* column select */
- RNA_enum_set(WM_keymap_add_item(keymap, "GRAPH_OT_select_column", KKEY, KM_PRESS, 0, 0)->ptr, "mode", GRAPHKEYS_COLUMNSEL_KEYS);
- RNA_enum_set(WM_keymap_add_item(keymap, "GRAPH_OT_select_column", KKEY, KM_PRESS, KM_CTRL, 0)->ptr, "mode", GRAPHKEYS_COLUMNSEL_CFRA);
- RNA_enum_set(WM_keymap_add_item(keymap, "GRAPH_OT_select_column", KKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "mode", GRAPHKEYS_COLUMNSEL_MARKERS_COLUMN);
- RNA_enum_set(WM_keymap_add_item(keymap, "GRAPH_OT_select_column", KKEY, KM_PRESS, KM_ALT, 0)->ptr, "mode", GRAPHKEYS_COLUMNSEL_MARKERS_BETWEEN);
-
- /* select more/less */
- WM_keymap_add_item(keymap, "GRAPH_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "GRAPH_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
-
- /* select linked */
- WM_keymap_add_item(keymap, "GRAPH_OT_select_linked", LKEY, KM_PRESS, 0, 0);
-
-
- /* graph_edit.c */
- /* jump to selected keyframes */
- WM_keymap_add_item(keymap, "GRAPH_OT_frame_jump", GKEY, KM_PRESS, KM_CTRL, 0);
-
- /* menu + single-step transform */
- WM_keymap_add_menu_pie(keymap, "GRAPH_MT_snap_pie", SKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "GRAPH_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "GRAPH_OT_handle_type", VKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "GRAPH_OT_interpolation_type", TKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "GRAPH_OT_easing_type", EKEY, KM_PRESS, KM_CTRL, 0);
-
- /* destructive */
- WM_keymap_add_item(keymap, "GRAPH_OT_smooth", OKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "GRAPH_OT_sample", OKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "GRAPH_OT_bake", CKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_menu(keymap, "GRAPH_MT_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_menu(keymap, "GRAPH_MT_delete", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_menu(keymap, "GRAPH_MT_specials", WKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "GRAPH_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* insertkey */
- WM_keymap_add_item(keymap, "GRAPH_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_click_insert", ACTIONMOUSE, KM_CLICK, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_click_insert", ACTIONMOUSE, KM_CLICK, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- /* copy/paste */
- WM_keymap_add_item(keymap, "GRAPH_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "GRAPH_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_paste", VKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "flipped", true);
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "GRAPH_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "GRAPH_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_paste", VKEY, KM_PRESS, KM_OSKEY | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "flipped", true);
-#endif
-
- /* auto-set range */
- WM_keymap_add_item(keymap, "GRAPH_OT_previewrange_set", PKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- WM_keymap_add_item(keymap, "GRAPH_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
-#ifdef WITH_INPUT_NDOF
- WM_keymap_add_item(keymap, "GRAPH_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
-#endif
- WM_keymap_add_item(keymap, "GRAPH_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "GRAPH_OT_view_frame", PAD0, KM_PRESS, 0, 0);
-
- /* F-Modifiers */
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_fmodifier_add", MKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "only_active", false);
-
- /* animation module */
- /* channels list
- * NOTE: these operators were originally for the channels list, but are added here too for convenience...
- */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_editable_toggle", TABKEY, KM_PRESS, 0, 0);
-
- /* transform system */
- transform_keymap_for_space(keyconf, keymap, SPACE_IPO);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", OKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_proportional_fcurve");
- ED_keymap_proportional_cycle(keyconf, keymap);
-
- /* pivot point settings */
- WM_keymap_add_menu_pie(keymap, "GRAPH_MT_pivot_pie", PERIODKEY, KM_PRESS, 0, 0);
-
- /* special markers hotkeys for anim editors: see note in definition of this function */
- ED_marker_keymap_animedit_conflictfree(keymap);
-}
-
-/* --------------- */
-
void graphedit_keymap(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap;
- wmKeyMapItem *kmi;
-
/* keymap for all regions */
- keymap = WM_keymap_ensure(keyconf, "Graph Editor Generic", SPACE_IPO, 0);
- WM_keymap_add_item(keymap, "GRAPH_OT_properties", NKEY, KM_PRESS, 0, 0);
-
- /* extrapolation works on channels, not keys */
- WM_keymap_add_item(keymap, "GRAPH_OT_extrapolation_type", EKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* find (i.e. a shortcut for setting the name filter) */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_find", FKEY, KM_PRESS, KM_CTRL, 0);
-
- /* hide/reveal selected curves */
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_hide", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
-
- kmi = WM_keymap_add_item(keymap, "GRAPH_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
-
- WM_keymap_add_item(keymap, "GRAPH_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
-
+ WM_keymap_ensure(keyconf, "Graph Editor Generic", SPACE_IPO, 0);
/* channels */
/* Channels are not directly handled by the Graph Editor module, but are inherited from the Animation module.
@@ -705,6 +502,5 @@ void graphedit_keymap(wmKeyConfig *keyconf)
*/
/* keyframes */
- keymap = WM_keymap_ensure(keyconf, "Graph Editor", SPACE_IPO, 0);
- graphedit_keymap_keyframes(keyconf, keymap);
+ WM_keymap_ensure(keyconf, "Graph Editor", SPACE_IPO, 0);
}
diff --git a/source/blender/editors/space_image/space_image.c b/source/blender/editors/space_image/space_image.c
index 2854f52ac18..8218216f9a6 100644
--- a/source/blender/editors/space_image/space_image.c
+++ b/source/blender/editors/space_image/space_image.c
@@ -293,87 +293,8 @@ static void image_operatortypes(void)
static void image_keymap(struct wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Image Generic", SPACE_IMAGE, 0);
- wmKeyMapItem *kmi;
- int i;
-
- WM_keymap_add_item(keymap, "IMAGE_OT_new", NKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_open", OKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_reload", RKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_read_viewlayers", RKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_save", SKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_save_as", SKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_properties", NKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_toolshelf", TKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_menu(keymap, "IMAGE_MT_specials", WKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "IMAGE_OT_cycle_render_slot", JKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(WM_keymap_add_item(keymap, "IMAGE_OT_cycle_render_slot", JKEY, KM_PRESS, KM_ALT, 0)->ptr, "reverse", true);
-
- keymap = WM_keymap_ensure(keyconf, "Image", SPACE_IMAGE, 0);
-
- WM_keymap_add_item(keymap, "IMAGE_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "IMAGE_OT_view_all", HOMEKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "fit_view", true);
-
- WM_keymap_add_item(keymap, "IMAGE_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_view_pan", MIDDLEMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_view_pan", MIDDLEMOUSE, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_view_pan", MOUSEPAN, 0, 0, 0);
-
-#ifdef WITH_INPUT_NDOF
- WM_keymap_add_item(keymap, "IMAGE_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0); // or view selected?
- WM_keymap_add_item(keymap, "IMAGE_OT_view_ndof", NDOF_MOTION, 0, 0, 0);
-#endif
-
- WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_in", WHEELINMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_out", WHEELOUTMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_in", PADPLUSKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_out", PADMINUS, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom", MIDDLEMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom", MOUSEZOOM, 0, 0, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom", MOUSEPAN, 0, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_border", BKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* ctrl now works as well, shift + numpad works as arrow keys on Windows */
- RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD8, KM_PRESS, KM_CTRL, 0)->ptr, "ratio", 8.0f);
- RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD4, KM_PRESS, KM_CTRL, 0)->ptr, "ratio", 4.0f);
- RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD2, KM_PRESS, KM_CTRL, 0)->ptr, "ratio", 2.0f);
- RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD8, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 8.0f);
- RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD4, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 4.0f);
- RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD2, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 2.0f);
-
- RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD1, KM_PRESS, 0, 0)->ptr, "ratio", 1.0f);
- RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD2, KM_PRESS, 0, 0)->ptr, "ratio", 0.5f);
- RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD4, KM_PRESS, 0, 0)->ptr, "ratio", 0.25f);
- RNA_float_set(WM_keymap_add_item(keymap, "IMAGE_OT_view_zoom_ratio", PAD8, KM_PRESS, 0, 0)->ptr, "ratio", 0.125f);
-
- WM_keymap_add_item(keymap, "IMAGE_OT_change_frame", LEFTMOUSE, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "IMAGE_OT_sample", ACTIONMOUSE, KM_PRESS, 0, 0);
- RNA_enum_set(WM_keymap_add_item(keymap, "IMAGE_OT_curves_point_set", ACTIONMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "point", 0);
- RNA_enum_set(WM_keymap_add_item(keymap, "IMAGE_OT_curves_point_set", ACTIONMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "point", 1);
-
- /* toggle editmode is handy to have while UV unwrapping */
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_mode_set", TABKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", OB_MODE_EDIT);
- RNA_boolean_set(kmi->ptr, "toggle", true);
-
- /* fast switch to render slots */
- for (i = 0; i < 9; i++) {
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_int", ONEKEY + i, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.image.render_slots.active_index");
- RNA_int_set(kmi->ptr, "value", i);
- }
-
- /* pivot */
- WM_keymap_add_menu_pie(keymap, "IMAGE_MT_pivot_pie", PERIODKEY, KM_PRESS, 0, 0);
-
- /* render border */
- WM_keymap_add_item(keymap, "IMAGE_OT_render_border", BKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "IMAGE_OT_clear_render_border", BKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
+ WM_keymap_ensure(keyconf, "Image Generic", SPACE_IMAGE, 0);
+ WM_keymap_ensure(keyconf, "Image", SPACE_IMAGE, 0);
}
/* dropboxes */
diff --git a/source/blender/editors/space_info/space_info.c b/source/blender/editors/space_info/space_info.c
index ab7d688cebb..d2b6d07541e 100644
--- a/source/blender/editors/space_info/space_info.c
+++ b/source/blender/editors/space_info/space_info.c
@@ -207,28 +207,8 @@ static void info_operatortypes(void)
static void info_keymap(struct wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Window", 0, 0);
-
- WM_keymap_verify_item(keymap, "INFO_OT_reports_display_update", TIMERREPORT, KM_ANY, KM_ANY, 0);
-
- /* info space */
- keymap = WM_keymap_ensure(keyconf, "Info", SPACE_INFO, 0);
-
-
- /* report selection */
- WM_keymap_add_item(keymap, "INFO_OT_select_pick", SELECTMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "INFO_OT_select_all_toggle", AKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "INFO_OT_select_box", BKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "INFO_OT_report_replay", RKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "INFO_OT_report_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "INFO_OT_report_delete", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "INFO_OT_report_copy", CKEY, KM_PRESS, KM_CTRL, 0);
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "INFO_OT_report_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
-#endif
+ WM_keymap_ensure(keyconf, "Window", 0, 0);
+ WM_keymap_ensure(keyconf, "Info", SPACE_INFO, 0);
}
/* add handlers, stuff you only do once or on area/region changes */
diff --git a/source/blender/editors/space_logic/space_logic.c b/source/blender/editors/space_logic/space_logic.c
index 531d85f517f..1896d7ec3a2 100644
--- a/source/blender/editors/space_logic/space_logic.c
+++ b/source/blender/editors/space_logic/space_logic.c
@@ -178,16 +178,7 @@ static void logic_operatortypes(void)
static void logic_keymap(struct wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Logic Editor", SPACE_LOGIC, 0);
-
- WM_keymap_add_item(keymap, "LOGIC_OT_properties", NKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "LOGIC_OT_links_cut", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_menu(keymap, "LOGIC_MT_logicbricks_add", AKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "LOGIC_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
-#ifdef WITH_INPUT_NDOF
- WM_keymap_add_item(keymap, "LOGIC_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
-#endif
+ WM_keymap_ensure(keyconf, "Logic Editor", SPACE_LOGIC, 0);
}
static void logic_refresh(const bContext *UNUSED(C), ScrArea *UNUSED(sa))
diff --git a/source/blender/editors/space_nla/nla_ops.c b/source/blender/editors/space_nla/nla_ops.c
index 46c682170cd..abe99eca381 100644
--- a/source/blender/editors/space_nla/nla_ops.c
+++ b/source/blender/editors/space_nla/nla_ops.c
@@ -40,7 +40,6 @@
#include "ED_markers.h"
#include "ED_screen.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "ED_transform.h"
#include "WM_api.h"
@@ -173,167 +172,10 @@ void nla_operatortypes(void)
/* ************************** registration - keymaps **********************************/
-static void nla_keymap_channels(wmKeyMap *keymap)
-{
- wmKeyMapItem *kmi;
-
- /* keymappings here are NLA-specific (different to standard channels keymap) */
-
- /* selection --------------------------------------------------------------------- */
- /* click-select */
- // XXX for now, only leftmouse....
- kmi = WM_keymap_add_item(keymap, "NLA_OT_channels_click", LEFTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- kmi = WM_keymap_add_item(keymap, "NLA_OT_channels_click", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- /* channel operations ------------------------------------------------------------ */
- /* add tracks */
- kmi = WM_keymap_add_item(keymap, "NLA_OT_tracks_add", AKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "above_selected", false);
- kmi = WM_keymap_add_item(keymap, "NLA_OT_tracks_add", AKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "above_selected", true);
-
- /* delete tracks */
- WM_keymap_add_item(keymap, "NLA_OT_tracks_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "NLA_OT_tracks_delete", DELKEY, KM_PRESS, 0, 0);
-}
-
-static void nla_keymap_main(wmKeyConfig *keyconf, wmKeyMap *keymap)
-{
- wmKeyMapItem *kmi;
-
- /* selection ------------------------------------------------ */
- /* click select */
- kmi = WM_keymap_add_item(keymap, "NLA_OT_click_select", SELECTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- kmi = WM_keymap_add_item(keymap, "NLA_OT_click_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- /* select left/right */
- kmi = WM_keymap_add_item(keymap, "NLA_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_enum_set(kmi->ptr, "mode", NLAEDIT_LRSEL_TEST);
- kmi = WM_keymap_add_item(keymap, "NLA_OT_select_leftright", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_enum_set(kmi->ptr, "mode", NLAEDIT_LRSEL_TEST);
-
- kmi = WM_keymap_add_item(keymap, "NLA_OT_select_leftright", LEFTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_enum_set(kmi->ptr, "mode", NLAEDIT_LRSEL_LEFT);
- kmi = WM_keymap_add_item(keymap, "NLA_OT_select_leftright", RIGHTBRACKETKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_enum_set(kmi->ptr, "mode", NLAEDIT_LRSEL_RIGHT);
-
- /* deselect all */
- ED_keymap_template_select_all(keymap, "NLA_OT_select_all");
-
- /* box_select */
- kmi = WM_keymap_add_item(keymap, "NLA_OT_select_box", BKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "axis_range", false);
- kmi = WM_keymap_add_item(keymap, "NLA_OT_select_box", BKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "axis_range", true);
-
- /* view ---------------------------------------------------- */
- /* auto-set range */
- WM_keymap_add_item(keymap, "NLA_OT_previewrange_set", PKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "NLA_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
-#ifdef WITH_INPUT_NDOF
- WM_keymap_add_item(keymap, "NLA_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
-#endif
- WM_keymap_add_item(keymap, "NLA_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "NLA_OT_view_frame", PAD0, KM_PRESS, 0, 0);
-
- /* editing ------------------------------------------------ */
-
- /* add strips */
- WM_keymap_add_item(keymap, "NLA_OT_actionclip_add", AKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "NLA_OT_transition_add", TKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "NLA_OT_soundclip_add", KKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* meta-strips */
- WM_keymap_add_item(keymap, "NLA_OT_meta_add", GKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "NLA_OT_meta_remove", GKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
-
- /* duplicate */
- kmi = WM_keymap_add_item(keymap, "NLA_OT_duplicate", DKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "linked", false);
-
- kmi = WM_keymap_add_item(keymap, "NLA_OT_duplicate", DKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "linked", true);
-
- /* single user */
- WM_keymap_add_item(keymap, "NLA_OT_make_single_user", UKEY, KM_PRESS, 0, 0);
-
- /* delete */
- WM_keymap_add_item(keymap, "NLA_OT_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "NLA_OT_delete", DELKEY, KM_PRESS, 0, 0);
-
- /* split */
- WM_keymap_add_item(keymap, "NLA_OT_split", YKEY, KM_PRESS, 0, 0);
-
- /* toggles */
- WM_keymap_add_item(keymap, "NLA_OT_mute_toggle", HKEY, KM_PRESS, 0, 0);
-
- /* swap */
- WM_keymap_add_item(keymap, "NLA_OT_swap", FKEY, KM_PRESS, KM_ALT, 0);
-
- /* move up */
- WM_keymap_add_item(keymap, "NLA_OT_move_up", PAGEUPKEY, KM_PRESS, 0, 0);
- /* move down */
- WM_keymap_add_item(keymap, "NLA_OT_move_down", PAGEDOWNKEY, KM_PRESS, 0, 0);
-
- /* apply scale */
- WM_keymap_add_item(keymap, "NLA_OT_apply_scale", AKEY, KM_PRESS, KM_CTRL, 0);
- /* clear scale */
- WM_keymap_add_item(keymap, "NLA_OT_clear_scale", SKEY, KM_PRESS, KM_ALT, 0);
-
- /* snap */
- WM_keymap_add_menu_pie(keymap, "NLA_MT_snap_pie", SKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* add f-modifier */
- WM_keymap_add_item(keymap, "NLA_OT_fmodifier_add", MKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
-
- /* transform system */
- transform_keymap_for_space(keyconf, keymap, SPACE_NLA);
-
- /* special markers hotkeys for anim editors: see note in definition of this function */
- ED_marker_keymap_animedit_conflictfree(keymap);
-}
-
-/* --------------- */
-
void nla_keymap(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap;
- wmKeyMapItem *kmi;
-
/* keymap for all regions ------------------------------------------- */
- keymap = WM_keymap_ensure(keyconf, "NLA Generic", SPACE_NLA, 0);
-
- /* region management */
- WM_keymap_add_item(keymap, "NLA_OT_properties", NKEY, KM_PRESS, 0, 0);
-
- /* tweakmode
- * - enter and exit are separate operators with the same hotkey...
- * This works as they use different poll()'s
- */
- WM_keymap_add_item(keymap, "NLA_OT_tweakmode_enter", TABKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "NLA_OT_tweakmode_exit", TABKEY, KM_PRESS, 0, 0);
-
- /* tweakmode for stashed actions
- * - similar to normal tweakmode, except we mark the tracks as being "solo"
- * too so that the action can be edited in isolation
- */
- kmi = WM_keymap_add_item(keymap, "NLA_OT_tweakmode_enter", TABKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "isolate_action", true);
-
- kmi = WM_keymap_add_item(keymap, "NLA_OT_tweakmode_exit", TABKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "isolate_action", true);
-
- /* find (i.e. a shortcut for setting the name filter) */
- WM_keymap_add_item(keymap, "ANIM_OT_channels_find", FKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_ensure(keyconf, "NLA Generic", SPACE_NLA, 0);
/* channels ---------------------------------------------------------- */
/* Channels are not directly handled by the NLA Editor module, but are inherited from the Animation module.
@@ -342,10 +184,8 @@ void nla_keymap(wmKeyConfig *keyconf)
*
* However, those operations which involve clicking on channels and/or the placement of them in the view are implemented here instead
*/
- keymap = WM_keymap_ensure(keyconf, "NLA Channels", SPACE_NLA, 0);
- nla_keymap_channels(keymap);
+ WM_keymap_ensure(keyconf, "NLA Channels", SPACE_NLA, 0);
/* data ------------------------------------------------------------- */
- keymap = WM_keymap_ensure(keyconf, "NLA Editor", SPACE_NLA, 0);
- nla_keymap_main(keyconf, keymap);
+ WM_keymap_ensure(keyconf, "NLA Editor", SPACE_NLA, 0);
}
diff --git a/source/blender/editors/space_node/node_ops.c b/source/blender/editors/space_node/node_ops.c
index a996c6835f1..1eead941c97 100644
--- a/source/blender/editors/space_node/node_ops.c
+++ b/source/blender/editors/space_node/node_ops.c
@@ -38,7 +38,6 @@
#include "ED_node.h" /* own include */
#include "ED_screen.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "ED_transform.h"
#include "RNA_access.h"
@@ -203,154 +202,11 @@ void ED_operatormacros_node(void)
WM_operatortype_macro_define(ot, "NODE_OT_translate_attach");
}
-/* helper function for repetitive select operator keymap */
-static void node_select_keymap(wmKeyMap *keymap, int extend)
-{
- /* modifier combinations */
- const int mod_single[] = { 0, KM_CTRL, KM_ALT, KM_CTRL | KM_ALT,
- -1 /* terminator */
- };
- const int mod_extend[] = { KM_SHIFT, KM_SHIFT | KM_CTRL,
- KM_SHIFT | KM_ALT, KM_SHIFT | KM_CTRL | KM_ALT,
- -1 /* terminator */
- };
- const int *mod = (extend ? mod_extend : mod_single);
- wmKeyMapItem *kmi;
- int i;
-
- for (i = 0; mod[i] >= 0; ++i) {
- kmi = WM_keymap_add_item(keymap, "NODE_OT_select", ACTIONMOUSE, KM_PRESS, mod[i], 0);
- RNA_boolean_set(kmi->ptr, "extend", extend);
- kmi = WM_keymap_add_item(keymap, "NODE_OT_select", SELECTMOUSE, KM_PRESS, mod[i], 0);
- RNA_boolean_set(kmi->ptr, "extend", extend);
- }
-}
-
void node_keymap(struct wmKeyConfig *keyconf)
{
- wmKeyMap *keymap;
- wmKeyMapItem *kmi;
-
/* Entire Editor only ----------------- */
- keymap = WM_keymap_ensure(keyconf, "Node Generic", SPACE_NODE, 0);
-
- WM_keymap_add_item(keymap, "NODE_OT_properties", NKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "NODE_OT_toolbar", TKEY, KM_PRESS, 0, 0);
+ WM_keymap_ensure(keyconf, "Node Generic", SPACE_NODE, 0);
/* Main Region only ----------------- */
- keymap = WM_keymap_ensure(keyconf, "Node Editor", SPACE_NODE, 0);
-
- /* mouse select in nodes used to be both keys, but perhaps this should be reduced?
- * NOTE: mouse-clicks on left-mouse will fall through to allow transform-tweak, but also link/resize
- * NOTE 2: socket select is part of the node select operator, to handle overlapping cases
- * NOTE 3: select op is registered for various combinations of modifier key, so the specialized
- * grab operators (unlink, attach, etc.) can work easily on single nodes.
- */
- node_select_keymap(keymap, false);
- node_select_keymap(keymap, true);
-
- kmi = WM_keymap_add_item(keymap, "NODE_OT_select_box", EVT_TWEAK_S, KM_ANY, 0, 0);
- RNA_boolean_set(kmi->ptr, "tweak", true);
-
- kmi = WM_keymap_add_item(keymap, "NODE_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "NODE_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_SHIFT | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", true);
-
- WM_keymap_add_item(keymap, "NODE_OT_select_circle", CKEY, KM_PRESS, 0, 0);
-
- /* each of these falls through if not handled... */
- kmi = WM_keymap_add_item(keymap, "NODE_OT_link", LEFTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "detach", false);
- kmi = WM_keymap_add_item(keymap, "NODE_OT_link", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "detach", true);
-
- WM_keymap_add_item(keymap, "NODE_OT_resize", LEFTMOUSE, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "NODE_OT_add_reroute", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "NODE_OT_links_cut", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "NODE_OT_select_link_viewer", LEFTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "NODE_OT_backimage_move", MIDDLEMOUSE, KM_PRESS, KM_ALT, 0);
- kmi = WM_keymap_add_item(keymap, "NODE_OT_backimage_zoom", VKEY, KM_PRESS, 0, 0);
- RNA_float_set(kmi->ptr, "factor", 0.83333f);
- kmi = WM_keymap_add_item(keymap, "NODE_OT_backimage_zoom", VKEY, KM_PRESS, KM_ALT, 0);
- RNA_float_set(kmi->ptr, "factor", 1.2f);
- WM_keymap_add_item(keymap, "NODE_OT_backimage_fit", HOMEKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "NODE_OT_backimage_sample", ACTIONMOUSE, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_menu(keymap, "NODE_MT_specials", WKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "NODE_OT_link_make", FKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "replace", false);
- kmi = WM_keymap_add_item(keymap, "NODE_OT_link_make", FKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "replace", true);
-
- WM_keymap_add_menu(keymap, "NODE_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "NODE_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
- /* modified operator call for duplicating with input links */
- WM_keymap_add_item(keymap, "NODE_OT_duplicate_move_keep_inputs", DKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "NODE_OT_parent_set", PKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "NODE_OT_detach", PKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "NODE_OT_join", JKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "NODE_OT_hide_toggle", HKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "NODE_OT_mute_toggle", MKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "NODE_OT_preview_toggle", HKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "NODE_OT_hide_socket_toggle", HKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "NODE_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
-#ifdef WITH_INPUT_NDOF
- WM_keymap_add_item(keymap, "NODE_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
-#endif
- WM_keymap_add_item(keymap, "NODE_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "NODE_OT_select_box", BKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "tweak", false);
-
- WM_keymap_add_item(keymap, "NODE_OT_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "NODE_OT_delete", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "NODE_OT_delete_reconnect", XKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "NODE_OT_delete_reconnect", DELKEY, KM_PRESS, KM_CTRL, 0);
-
- ED_keymap_template_select_all(keymap, "NODE_OT_select_all");
-
- WM_keymap_add_item(keymap, "NODE_OT_select_linked_to", LKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "NODE_OT_select_linked_from", LKEY, KM_PRESS, 0, 0);
- kmi = WM_keymap_add_item(keymap, "NODE_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- kmi = WM_keymap_add_item(keymap, "NODE_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- kmi = WM_keymap_add_item(keymap, "NODE_OT_select_same_type_step", RIGHTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "prev", false);
- kmi = WM_keymap_add_item(keymap, "NODE_OT_select_same_type_step", LEFTBRACKETKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "prev", true);
-
- WM_keymap_add_item(keymap, "NODE_OT_find_node", FKEY, KM_PRESS, KM_CTRL, 0);
-
- /* node group operators */
- WM_keymap_add_item(keymap, "NODE_OT_group_make", GKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "NODE_OT_group_ungroup", GKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- WM_keymap_add_item(keymap, "NODE_OT_group_separate", PKEY, KM_PRESS, 0, 0);
- kmi = WM_keymap_add_item(keymap, "NODE_OT_group_edit", TABKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "exit", false);
- kmi = WM_keymap_add_item(keymap, "NODE_OT_group_edit", TABKEY, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "exit", true);
-
- WM_keymap_add_item(keymap, "NODE_OT_read_viewlayers", RKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "NODE_OT_render_changed", ZKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "NODE_OT_clipboard_copy", CKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "NODE_OT_clipboard_paste", VKEY, KM_PRESS, KM_CTRL, 0);
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "NODE_OT_clipboard_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "NODE_OT_clipboard_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
-#endif
- WM_keymap_add_item(keymap, "NODE_OT_viewer_border", BKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "NODE_OT_clear_viewer_border", BKEY, KM_PRESS, KM_ALT | KM_CTRL, 0);
-
- transform_keymap_for_space(keyconf, keymap, SPACE_NODE);
+ WM_keymap_ensure(keyconf, "Node Editor", SPACE_NODE, 0);
}
diff --git a/source/blender/editors/space_outliner/outliner_ops.c b/source/blender/editors/space_outliner/outliner_ops.c
index 089b153fa26..87c9827a15a 100644
--- a/source/blender/editors/space_outliner/outliner_ops.c
+++ b/source/blender/editors/space_outliner/outliner_ops.c
@@ -53,7 +53,6 @@
#include "ED_screen.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "outliner_intern.h"
@@ -121,87 +120,5 @@ void outliner_operatortypes(void)
void outliner_keymap(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Outliner", SPACE_OUTLINER, 0);
- wmKeyMapItem *kmi;
-
- WM_keymap_add_item(keymap, "OUTLINER_OT_highlight_update", MOUSEMOVE, KM_ANY, KM_ANY, 0);
-
- WM_keymap_add_item(keymap, "OUTLINER_OT_item_rename", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_CLICK, 0, 0);
- RNA_boolean_set(kmi->ptr, "recursive", false);
- RNA_boolean_set(kmi->ptr, "extend", false);
-
- kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_CLICK, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "recursive", false);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_CLICK, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "recursive", true);
- RNA_boolean_set(kmi->ptr, "extend", false);
-
- kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_activate", LEFTMOUSE, KM_CLICK, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "recursive", true);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
-
- WM_keymap_add_item(keymap, "OUTLINER_OT_select_box", BKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_openclose", RETKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "all", false);
- kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_item_openclose", RETKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "all", true);
-
- WM_keymap_add_item(keymap, "OUTLINER_OT_item_rename", LEFTMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "OUTLINER_OT_operation", RIGHTMOUSE, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "OUTLINER_OT_item_drag_drop", EVT_TWEAK_L, KM_ANY, 0, 0);
- WM_keymap_add_item(keymap, "OUTLINER_OT_item_drag_drop", EVT_TWEAK_L, KM_ANY, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "OUTLINER_OT_show_hierarchy", HOMEKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "OUTLINER_OT_show_active", PERIODKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "OUTLINER_OT_show_active", PADPERIOD, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_scroll_page", PAGEDOWNKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "up", false);
- kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_scroll_page", PAGEUPKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "up", true);
-
- WM_keymap_add_item(keymap, "OUTLINER_OT_show_one_level", PADPLUSKEY, KM_PRESS, 0, 0); /* open */
- kmi = WM_keymap_add_item(keymap, "OUTLINER_OT_show_one_level", PADMINUS, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "open", false); /* close */
-
- ED_keymap_template_select_all(keymap, "OUTLINER_OT_select_all");
-
- WM_keymap_add_item(keymap, "OUTLINER_OT_expanded_toggle", AKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* keying sets - only for databrowse */
- WM_keymap_add_item(keymap, "OUTLINER_OT_keyingset_add_selected", KKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "OUTLINER_OT_keyingset_remove_selected", KKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "ANIM_OT_keyframe_insert", IKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "ANIM_OT_keyframe_delete", IKEY, KM_PRESS, KM_ALT, 0);
-
- /* Note: was D, Alt-D, keep these free for duplicate. */
- WM_keymap_add_item(keymap, "OUTLINER_OT_drivers_add_selected", DKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "OUTLINER_OT_drivers_delete_selected", DKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "OUTLINER_OT_collection_new", CKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "OUTLINER_OT_collection_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "OUTLINER_OT_collection_delete", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "OBJECT_OT_move_to_collection", MKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "OBJECT_OT_link_to_collection", MKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "OUTLINER_OT_collection_exclude_set", EKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "OUTLINER_OT_collection_exclude_clear", EKEY, KM_PRESS, KM_ALT, 0);
-
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_clear", HKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "select", false);
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_set", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_hide_view_set", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
+ WM_keymap_ensure(keyconf, "Outliner", SPACE_OUTLINER, 0);
}
diff --git a/source/blender/editors/space_sequencer/sequencer_ops.c b/source/blender/editors/space_sequencer/sequencer_ops.c
index 2b84466a353..cdba163f574 100644
--- a/source/blender/editors/space_sequencer/sequencer_ops.c
+++ b/source/blender/editors/space_sequencer/sequencer_ops.c
@@ -40,7 +40,6 @@
#include "ED_markers.h"
#include "ED_transform.h" /* transform keymap */
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "BKE_sequencer.h"
@@ -135,234 +134,14 @@ void sequencer_operatortypes(void)
void sequencer_keymap(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap;
- wmKeyMapItem *kmi;
-
/* Common items ------------------------------------------------------------------ */
- keymap = WM_keymap_ensure(keyconf, "SequencerCommon", SPACE_SEQ, 0);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_properties", NKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", OKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "scene.sequence_editor.show_overlay");
-
- /* operators common to sequence and preview view */
- WM_keymap_add_item(keymap, "SEQUENCER_OT_view_toggle", TABKEY, KM_PRESS, KM_CTRL, 0);
+ WM_keymap_ensure(keyconf, "SequencerCommon", SPACE_SEQ, 0);
/* Strips Region --------------------------------------------------------------- */
- keymap = WM_keymap_ensure(keyconf, "Sequencer", SPACE_SEQ, 0);
-
- ED_keymap_template_select_all(keymap, "SEQUENCER_OT_select_all");
-
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_cut", KKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "type", SEQ_CUT_SOFT);
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_cut", KKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "type", SEQ_CUT_HARD);
-
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_mute", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_mute", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
-
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_unmute", HKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_unmute", HKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_lock", LKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_unlock", LKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_reassign_inputs", RKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_reload", RKEY, KM_PRESS, KM_ALT, 0);
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_reload", RKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "adjust_length", true);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_offset_clear", OKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_duplicate_move", DKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", XKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_delete", DELKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "SEQUENCER_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
-#endif
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_images_separate", YKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_meta_toggle", TABKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_meta_make", GKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_meta_separate", GKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
-#ifdef WITH_INPUT_NDOF
- WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
-#endif
- WM_keymap_add_item(keymap, "SEQUENCER_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_view_frame", PAD0, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_strip_jump", PAGEUPKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "next", true);
- RNA_boolean_set(kmi->ptr, "center", false);
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_strip_jump", PAGEDOWNKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "next", false);
- RNA_boolean_set(kmi->ptr, "center", false);
-
- /* alt for center */
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_strip_jump", PAGEUPKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "next", true);
- RNA_boolean_set(kmi->ptr, "center", true);
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_strip_jump", PAGEDOWNKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "next", false);
- RNA_boolean_set(kmi->ptr, "center", true);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_swap", LEFTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "side", SEQ_SIDE_LEFT);
- RNA_enum_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_swap", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "side", SEQ_SIDE_RIGHT);
-
- RNA_boolean_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_gap_remove", BACKSPACEKEY, KM_PRESS, 0, 0)->ptr, "all", false);
- RNA_boolean_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_gap_remove", BACKSPACEKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "all", true);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_gap_insert", EQUALKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_snap", SKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_swap_inputs", SKEY, KM_PRESS, KM_ALT, 0);
-
- /* multicam editing keyboard layout, switch to camera 1-10 using
- * regular number keys */
- {
- int keys[] = { ONEKEY, TWOKEY, THREEKEY, FOURKEY, FIVEKEY,
- SIXKEY, SEVENKEY, EIGHTKEY, NINEKEY, ZEROKEY };
- int i;
-
- for (i = 1; i <= 10; i++) {
- RNA_int_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_cut_multicam", keys[i - 1], KM_PRESS, 0, 0)->ptr, "camera", i);
- }
- }
-
- /* Mouse selection, a bit verbose :/ */
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "linked_handle", false);
- RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
- RNA_boolean_set(kmi->ptr, "linked_time", false);
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "linked_handle", false);
- RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
- RNA_boolean_set(kmi->ptr, "linked_time", false);
-
-
- /* 2.4x method, now use Alt for handles and select the side based on which handle was selected */
-#if 0
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "linked_left", true);
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "linked_right", true);
-
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "linked_left", true);
- RNA_boolean_set(kmi->ptr, "linked_right", true);
-
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "linked_left", true);
- RNA_boolean_set(kmi->ptr, "linked_right", true);
-
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "linked_left", true);
-
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "linked_right", true);
-#endif
-
- /* 2.5 method, Alt and use selected handle */
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "linked_handle", true);
- RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
- RNA_boolean_set(kmi->ptr, "linked_time", false);
-
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "linked_handle", true);
- RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
- RNA_boolean_set(kmi->ptr, "linked_time", false);
-
- /* match action editor */
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "linked_handle", false);
- RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_MOUSE); /* grr, these conflict - only use left_right if not over an active seq */
- RNA_boolean_set(kmi->ptr, "linked_time", true);
- /* adjusted since 2.4 */
-
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "linked_handle", false);
- RNA_enum_set(kmi->ptr, "left_right", SEQ_SELECT_LR_NONE);
- RNA_boolean_set(kmi->ptr, "linked_time", true);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
-
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- kmi = WM_keymap_add_item(keymap, "SEQUENCER_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_select_box", BKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_select_grouped", GKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_menu(keymap, "SEQUENCER_MT_add", AKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_menu(keymap, "SEQUENCER_MT_change", CKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_slip", SKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_int", OKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "scene.sequence_editor.overlay_frame");
- RNA_int_set(kmi->ptr, "value", 0);
-
- transform_keymap_for_space(keyconf, keymap, SPACE_SEQ);
-
- /* special markers hotkeys for anim editors: see note in definition of this function */
- ED_marker_keymap_animedit_conflictfree(keymap);
-
+ WM_keymap_ensure(keyconf, "Sequencer", SPACE_SEQ, 0);
/* Preview Region ----------------------------------------------------------- */
- keymap = WM_keymap_ensure(keyconf, "SequencerPreview", SPACE_SEQ, 0);
- WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all_preview", HOMEKEY, KM_PRESS, 0, 0);
-#ifdef WITH_INPUT_NDOF
- WM_keymap_add_item(keymap, "SEQUENCER_OT_view_all_preview", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
-#endif
-
- WM_keymap_add_item(keymap, "SEQUENCER_OT_view_ghost_border", OKEY, KM_PRESS, 0, 0);
-
- /* would prefer to use numpad keys for job */
- RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD1, KM_PRESS, 0, 0)->ptr, "ratio", 1.0f);
-
- /* Setting zoom levels is not that useful, except for back to zoom level 1, removing keymap because of conflicts for now */
-#if 0
- RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD8, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 8.0f);
- RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD4, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 4.0f);
- RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD2, KM_PRESS, KM_SHIFT, 0)->ptr, "ratio", 2.0f);
-
- RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD2, KM_PRESS, 0, 0)->ptr, "ratio", 0.5f);
- RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD4, KM_PRESS, 0, 0)->ptr, "ratio", 0.25f);
- RNA_float_set(WM_keymap_add_item(keymap, "SEQUENCER_OT_view_zoom_ratio", PAD8, KM_PRESS, 0, 0)->ptr, "ratio", 0.125f);
-#endif
-
- /* sample */
- WM_keymap_add_item(keymap, "SEQUENCER_OT_sample", ACTIONMOUSE, KM_PRESS, 0, 0);
+ WM_keymap_ensure(keyconf, "SequencerPreview", SPACE_SEQ, 0);
}
void ED_operatormacros_sequencer(void)
diff --git a/source/blender/editors/space_text/space_text.c b/source/blender/editors/space_text/space_text.c
index 7f2ce59361e..27b75f49b44 100644
--- a/source/blender/editors/space_text/space_text.c
+++ b/source/blender/editors/space_text/space_text.c
@@ -241,160 +241,8 @@ static void text_operatortypes(void)
static void text_keymap(struct wmKeyConfig *keyconf)
{
- wmKeyMap *keymap;
- wmKeyMapItem *kmi;
-
- keymap = WM_keymap_ensure(keyconf, "Text Generic", SPACE_TEXT, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_start_find", FKEY, KM_PRESS, KM_CTRL, 0);
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "TEXT_OT_start_find", FKEY, KM_PRESS, KM_OSKEY, 0);
-#endif
- WM_keymap_add_item(keymap, "TEXT_OT_jump", JKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_find", GKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_replace", HKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_properties", TKEY, KM_PRESS, KM_CTRL, 0);
-
- keymap = WM_keymap_ensure(keyconf, "Text", SPACE_TEXT, 0);
-
-#ifdef __APPLE__
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", LEFTARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", LINE_BEGIN);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", RIGHTARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", LINE_END);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", LEFTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "type", PREV_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", RIGHTARROWKEY, KM_PRESS, KM_ALT, 0)->ptr, "type", NEXT_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", UPARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", FILE_TOP);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", DOWNARROWKEY, KM_PRESS, KM_OSKEY, 0)->ptr, "type", FILE_BOTTOM);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", LEFTARROWKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0)->ptr, "type", LINE_BEGIN);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0)->ptr, "type", LINE_END);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", LEFTARROWKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0)->ptr, "type", PREV_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0)->ptr, "type", NEXT_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", UPARROWKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0)->ptr, "type", FILE_TOP);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", DOWNARROWKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0)->ptr, "type", FILE_BOTTOM);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", BACKSPACEKEY, KM_PRESS, KM_ALT, 0)->ptr, "type", DEL_PREV_WORD);
-
- WM_keymap_add_item(keymap, "TEXT_OT_save", SKEY, KM_PRESS, KM_ALT | KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_save_as", SKEY, KM_PRESS, KM_ALT | KM_SHIFT | KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_cut", XKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_copy", CKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_paste", VKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_find_set_selected", EKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_select_all", AKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_select_line", AKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0);
-#endif
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
- RNA_boolean_set(kmi->ptr, "reverse", false);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
- RNA_boolean_set(kmi->ptr, "reverse", true);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
- RNA_boolean_set(kmi->ptr, "reverse", false);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_cycle_int", PADMINUS, KM_PRESS, KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path", "space_data.font_size");
- RNA_boolean_set(kmi->ptr, "reverse", true);
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "TEXT_OT_new", NKEY, KM_PRESS, KM_CTRL, 0);
-#else
- WM_keymap_add_item(keymap, "TEXT_OT_new", NKEY, KM_PRESS, KM_ALT, 0);
-#endif
- WM_keymap_add_item(keymap, "TEXT_OT_open", OKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_reload", RKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_save", SKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_save_as", SKEY, KM_PRESS, KM_ALT | KM_SHIFT | KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "TEXT_OT_run_script", PKEY, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "TEXT_OT_cut", XKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_copy", CKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_paste", VKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "TEXT_OT_cut", DELKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_copy", INSERTKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_paste", INSERTKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "TEXT_OT_duplicate_line", DKEY, KM_PRESS, KM_CTRL, 0);
-
- if (U.uiflag & USER_MMB_PASTE) { // XXX not dynamic
- kmi = WM_keymap_add_item(keymap, "TEXT_OT_paste", MIDDLEMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "selection", true);
- }
-
- WM_keymap_add_item(keymap, "TEXT_OT_select_all", AKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_select_line", AKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_select_word", LEFTMOUSE, KM_DBL_CLICK, 0, 0);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_lines", UPARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "direction", TXT_MOVE_LINE_UP);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_lines", DOWNARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "direction", TXT_MOVE_LINE_DOWN);
-
- WM_keymap_add_item(keymap, "TEXT_OT_indent", TABKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_unindent", TABKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_uncomment", DKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", HOMEKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_BEGIN);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", ENDKEY, KM_PRESS, 0, 0)->ptr, "type", LINE_END);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", EKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", LINE_END);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", EKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "type", LINE_END);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", LEFTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_CHAR);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", RIGHTARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_CHAR);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", LEFTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", PREV_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", RIGHTARROWKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", NEXT_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", UPARROWKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_LINE);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", DOWNARROWKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_LINE);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", PAGEUPKEY, KM_PRESS, 0, 0)->ptr, "type", PREV_PAGE);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", PAGEDOWNKEY, KM_PRESS, 0, 0)->ptr, "type", NEXT_PAGE);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", HOMEKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", FILE_TOP);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move", ENDKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", FILE_BOTTOM);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", HOMEKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", LINE_BEGIN);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", ENDKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", LINE_END);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", LEFTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", PREV_CHAR);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", NEXT_CHAR);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", LEFTARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "type", PREV_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", RIGHTARROWKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "type", NEXT_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", UPARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", PREV_LINE);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", DOWNARROWKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", NEXT_LINE);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", PAGEUPKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", PREV_PAGE);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", NEXT_PAGE);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", HOMEKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "type", FILE_TOP);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_move_select", ENDKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0)->ptr, "type", FILE_BOTTOM);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", DELKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_NEXT_CHAR);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", BACKSPACEKEY, KM_PRESS, 0, 0)->ptr, "type", DEL_PREV_CHAR);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", BACKSPACEKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "type", DEL_PREV_CHAR); /* same as above [#26623] */
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", DELKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", DEL_NEXT_WORD);
- RNA_enum_set(WM_keymap_add_item(keymap, "TEXT_OT_delete", BACKSPACEKEY, KM_PRESS, KM_CTRL, 0)->ptr, "type", DEL_PREV_WORD);
-
- WM_keymap_add_item(keymap, "TEXT_OT_overwrite_toggle", INSERTKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "TEXT_OT_scroll_bar", LEFTMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_scroll_bar", MIDDLEMOUSE, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "TEXT_OT_scroll", MIDDLEMOUSE, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_scroll", MOUSEPAN, 0, 0, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_selection_set", EVT_TWEAK_L, KM_ANY, 0, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_cursor_set", LEFTMOUSE, KM_PRESS, 0, 0);
- kmi = WM_keymap_add_item(keymap, "TEXT_OT_selection_set", LEFTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "select", true);
- RNA_int_set(WM_keymap_add_item(keymap, "TEXT_OT_scroll", WHEELUPMOUSE, KM_PRESS, 0, 0)->ptr, "lines", -1);
- RNA_int_set(WM_keymap_add_item(keymap, "TEXT_OT_scroll", WHEELDOWNMOUSE, KM_PRESS, 0, 0)->ptr, "lines", 1);
-
- WM_keymap_add_item(keymap, "TEXT_OT_line_break", RETKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_line_break", PADENTER, KM_PRESS, 0, 0);
-
- WM_keymap_add_menu(keymap, "TEXT_MT_toolbox", RIGHTMOUSE, KM_PRESS, KM_ANY, 0);
-
- WM_keymap_add_item(keymap, "TEXT_OT_autocomplete", SPACEKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "TEXT_OT_line_number", KM_TEXTINPUT, KM_ANY, KM_ANY, 0);
- WM_keymap_add_item(keymap, "TEXT_OT_insert", KM_TEXTINPUT, KM_ANY, KM_ANY, 0); // last!
+ WM_keymap_ensure(keyconf, "Text Generic", SPACE_TEXT, 0);
+ WM_keymap_ensure(keyconf, "Text", SPACE_TEXT, 0);
}
const char *text_context_dir[] = {"edit_text", NULL};
diff --git a/source/blender/editors/space_time/time_ops.c b/source/blender/editors/space_time/time_ops.c
index a68bd2a9fbb..6962af52bb1 100644
--- a/source/blender/editors/space_time/time_ops.c
+++ b/source/blender/editors/space_time/time_ops.c
@@ -214,13 +214,5 @@ void time_operatortypes(void)
void time_keymap(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Timeline", SPACE_TIME, 0);
-
- WM_keymap_add_item(keymap, "TIME_OT_start_frame_set", SKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "TIME_OT_end_frame_set", EKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "TIME_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
-#ifdef WITH_INPUT_NDOF
- WM_keymap_add_item(keymap, "TIME_OT_view_all", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
-#endif
- WM_keymap_add_item(keymap, "TIME_OT_view_frame", PAD0, KM_PRESS, 0, 0);
+ WM_keymap_ensure(keyconf, "Timeline", SPACE_TIME, 0);
}
diff --git a/source/blender/editors/space_view3d/view3d_edit.c b/source/blender/editors/space_view3d/view3d_edit.c
index 53442ff86fb..7f102189121 100644
--- a/source/blender/editors/space_view3d/view3d_edit.c
+++ b/source/blender/editors/space_view3d/view3d_edit.c
@@ -583,13 +583,6 @@ void viewrotate_modal_keymap(wmKeyConfig *keyconf)
keymap = WM_modalkeymap_add(keyconf, "View3D Rotate Modal", modal_items);
- /* items for modal map */
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, VIEW_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, VIEW_MODAL_CONFIRM);
-
- WM_modalkeymap_add_item(keymap, LEFTALTKEY, KM_PRESS, KM_ANY, 0, VIEWROT_MODAL_AXIS_SNAP_ENABLE);
- WM_modalkeymap_add_item(keymap, LEFTALTKEY, KM_RELEASE, KM_ANY, 0, VIEWROT_MODAL_AXIS_SNAP_DISABLE);
-
/* disabled mode switching for now, can re-implement better, later on */
#if 0
WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ZOOM);
@@ -1787,10 +1780,6 @@ void viewzoom_modal_keymap(wmKeyConfig *keyconf)
keymap = WM_modalkeymap_add(keyconf, "View3D Zoom Modal", modal_items);
- /* items for modal map */
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, VIEW_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, VIEW_MODAL_CONFIRM);
-
/* disabled mode switching for now, can re-implement better, later on */
#if 0
WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ROTATE);
@@ -2322,10 +2311,6 @@ void viewdolly_modal_keymap(wmKeyConfig *keyconf)
keymap = WM_modalkeymap_add(keyconf, "View3D Dolly Modal", modal_items);
- /* items for modal map */
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, VIEW_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, VIEW_MODAL_CONFIRM);
-
/* disabled mode switching for now, can re-implement better, later on */
#if 0
WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, VIEWROT_MODAL_SWITCH_ROTATE);
diff --git a/source/blender/editors/space_view3d/view3d_fly.c b/source/blender/editors/space_view3d/view3d_fly.c
index ae883f53f18..345d9fe39de 100644
--- a/source/blender/editors/space_view3d/view3d_fly.c
+++ b/source/blender/editors/space_view3d/view3d_fly.c
@@ -137,56 +137,6 @@ void fly_modal_keymap(wmKeyConfig *keyconf)
keymap = WM_modalkeymap_add(keyconf, "View3D Fly Modal", modal_items);
- /* items for modal map */
- WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_ANY, KM_ANY, 0, FLY_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_CANCEL);
-
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_ANY, KM_ANY, 0, FLY_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, SPACEKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, FLY_MODAL_CONFIRM);
-
- WM_modalkeymap_add_item(keymap, PADPLUSKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_ACCELERATE);
- WM_modalkeymap_add_item(keymap, PADMINUS, KM_PRESS, KM_ANY, 0, FLY_MODAL_DECELERATE);
- WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, KM_ANY, 0, FLY_MODAL_ACCELERATE);
- WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, KM_ANY, 0, FLY_MODAL_DECELERATE);
-
- WM_modalkeymap_add_item(keymap, MOUSEPAN, 0, 0, 0, FLY_MODAL_SPEED);
-
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, KM_ANY, 0, FLY_MODAL_PAN_ENABLE);
- /* XXX - Bug in the event system, middle mouse release doesn't work */
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, FLY_MODAL_PAN_DISABLE);
-
- /* WASD */
- WM_modalkeymap_add_item(keymap, WKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_FORWARD);
- WM_modalkeymap_add_item(keymap, SKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_BACKWARD);
- WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_LEFT);
- WM_modalkeymap_add_item(keymap, DKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_RIGHT);
- WM_modalkeymap_add_item(keymap, EKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_UP);
- WM_modalkeymap_add_item(keymap, QKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_DOWN);
-
- /* for legacy reasons, leave R/F working */
- WM_modalkeymap_add_item(keymap, RKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_UP);
- WM_modalkeymap_add_item(keymap, FKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_DOWN);
-
- WM_modalkeymap_add_item(keymap, UPARROWKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_FORWARD);
- WM_modalkeymap_add_item(keymap, DOWNARROWKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_BACKWARD);
- WM_modalkeymap_add_item(keymap, LEFTARROWKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_LEFT);
- WM_modalkeymap_add_item(keymap, RIGHTARROWKEY, KM_PRESS, 0, 0, FLY_MODAL_DIR_RIGHT);
-
- WM_modalkeymap_add_item(keymap, XKEY, KM_PRESS, 0, 0, FLY_MODAL_AXIS_LOCK_X);
- WM_modalkeymap_add_item(keymap, ZKEY, KM_PRESS, 0, 0, FLY_MODAL_AXIS_LOCK_Z);
-
- WM_modalkeymap_add_item(keymap, LEFTALTKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_PRECISION_ENABLE);
- WM_modalkeymap_add_item(keymap, LEFTALTKEY, KM_RELEASE, KM_ANY, 0, FLY_MODAL_PRECISION_DISABLE);
-
- /* for legacy reasons, leave shift working */
- WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_PRECISION_ENABLE);
- WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_RELEASE, KM_ANY, 0, FLY_MODAL_PRECISION_DISABLE);
-
- WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_PRESS, KM_ANY, 0, FLY_MODAL_FREELOOK_ENABLE);
- WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, FLY_MODAL_FREELOOK_DISABLE);
-
/* assign map to operators */
WM_modalkeymap_assign(keymap, "VIEW3D_OT_fly");
}
diff --git a/source/blender/editors/space_view3d/view3d_ops.c b/source/blender/editors/space_view3d/view3d_ops.c
index 9ed59759e4d..6c56bd7e72b 100644
--- a/source/blender/editors/space_view3d/view3d_ops.c
+++ b/source/blender/editors/space_view3d/view3d_ops.c
@@ -233,300 +233,10 @@ void view3d_operatortypes(void)
void view3d_keymap(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap;
- wmKeyMapItem *kmi;
-
- keymap = WM_keymap_ensure(keyconf, "3D View Generic", SPACE_VIEW3D, 0);
-
- WM_keymap_add_item(keymap, "VIEW3D_OT_properties", NKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_toolshelf", TKEY, KM_PRESS, 0, 0);
+ WM_keymap_ensure(keyconf, "3D View Generic", SPACE_VIEW3D, 0);
/* only for region 3D window */
- keymap = WM_keymap_ensure(keyconf, "3D View", SPACE_VIEW3D, 0);
-
- WM_keymap_verify_item(keymap, "VIEW3D_OT_cursor3d", ACTIONMOUSE, KM_CLICK, 0, 0);
-
- WM_keymap_verify_item(keymap, "VIEW3D_OT_rotate", MIDDLEMOUSE, KM_PRESS, 0, 0);
- WM_keymap_verify_item(keymap, "VIEW3D_OT_move", MIDDLEMOUSE, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_verify_item(keymap, "VIEW3D_OT_zoom", MIDDLEMOUSE, KM_PRESS, KM_CTRL, 0);
- WM_keymap_verify_item(keymap, "VIEW3D_OT_dolly", MIDDLEMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_selected", PADPERIOD, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "use_all_regions", true);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_selected", PADPERIOD, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "use_all_regions", false);
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_verify_item(keymap, "VIEW3D_OT_view_lock_to_active", PADPERIOD, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_verify_item(keymap, "VIEW3D_OT_view_lock_clear", PADPERIOD, KM_PRESS, KM_ALT, 0);
-
- WM_keymap_verify_item(keymap, "VIEW3D_OT_navigate", FKEY, KM_PRESS, KM_SHIFT, 0);
-#endif
-
- WM_keymap_verify_item(keymap, "VIEW3D_OT_smoothview", TIMER1, KM_ANY, KM_ANY, 0);
-
- WM_keymap_add_item(keymap, "VIEW3D_OT_rotate", MOUSEPAN, 0, 0, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_rotate", MOUSEROTATE, 0, 0, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_move", MOUSEPAN, 0, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", MOUSEZOOM, 0, 0, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", MOUSEPAN, 0, KM_CTRL, 0);
-
- /*numpad +/-*/
- RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", PADPLUSKEY, KM_PRESS, 0, 0)->ptr, "delta", 1);
- RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", PADMINUS, KM_PRESS, 0, 0)->ptr, "delta", -1);
- /*ctrl +/-*/
- RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", EQUALKEY, KM_PRESS, KM_CTRL, 0)->ptr, "delta", 1);
- RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", MINUSKEY, KM_PRESS, KM_CTRL, 0)->ptr, "delta", -1);
-
- /*wheel mouse forward/back*/
- RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", WHEELINMOUSE, KM_PRESS, 0, 0)->ptr, "delta", 1);
- RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_zoom", WHEELOUTMOUSE, KM_PRESS, 0, 0)->ptr, "delta", -1);
-
- /* ... and for dolly */
- /*numpad +/-*/
- RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_dolly", PADPLUSKEY, KM_PRESS, KM_SHIFT, 0)->ptr, "delta", 1);
- RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_dolly", PADMINUS, KM_PRESS, KM_SHIFT, 0)->ptr, "delta", -1);
- /*ctrl +/-*/
- RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_dolly", EQUALKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "delta", 1);
- RNA_int_set(WM_keymap_add_item(keymap, "VIEW3D_OT_dolly", MINUSKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "delta", -1);
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "VIEW3D_OT_zoom_camera_1_to_1", PADENTER, KM_PRESS, KM_SHIFT, 0);
-#endif
-
- WM_keymap_add_item(keymap, "VIEW3D_OT_view_center_camera", HOMEKEY, KM_PRESS, 0, 0); /* only with camera view */
- WM_keymap_add_item(keymap, "VIEW3D_OT_view_center_lock", HOMEKEY, KM_PRESS, 0, 0); /* only with lock view */
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "VIEW3D_OT_view_center_cursor", HOMEKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_view_center_pick", FKEY, KM_PRESS, KM_ALT, 0);
-#endif
-
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", HOMEKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "center", false); /* only without camera view */
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", HOMEKEY, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "use_all_regions", true);
- RNA_boolean_set(kmi->ptr, "center", false); /* only without camera view */
-#ifdef USE_WM_KEYMAP_27X
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_all", CKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "center", true);
-#endif
-
- WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_view_pie", ACCENTGRAVEKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_navigate", ACCENTGRAVEKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* numpad view hotkeys*/
- WM_keymap_add_item(keymap, "VIEW3D_OT_view_camera", PAD0, KM_PRESS, 0, 0);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD1, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_FRONT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD2, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPDOWN);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD3, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_RIGHT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD4, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPLEFT);
- WM_keymap_add_item(keymap, "VIEW3D_OT_view_persportho", PAD5, KM_PRESS, 0, 0);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD6, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPRIGHT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD7, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_TOP);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD8, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPUP);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD1, KM_PRESS, KM_CTRL, 0)->ptr, "type", RV3D_VIEW_BACK);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD3, KM_PRESS, KM_CTRL, 0)->ptr, "type", RV3D_VIEW_LEFT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD7, KM_PRESS, KM_CTRL, 0)->ptr, "type", RV3D_VIEW_BOTTOM);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", PAD2, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANDOWN);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", PAD4, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANLEFT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", PAD6, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANRIGHT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", PAD8, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANUP);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_roll", PAD4, KM_PRESS, KM_SHIFT, 0)->ptr, "type", V3D_VIEW_STEPLEFT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_roll", PAD6, KM_PRESS, KM_SHIFT, 0)->ptr, "type", V3D_VIEW_STEPRIGHT);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", PAD9, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "type", V3D_VIEW_STEPRIGHT);
- RNA_float_set(kmi->ptr, "angle", (float)M_PI);
-
-#ifdef USE_WM_KEYMAP_27X
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", WHEELUPMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANRIGHT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL, 0)->ptr, "type", V3D_VIEW_PANLEFT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", WHEELUPMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "type", V3D_VIEW_PANUP);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_pan", WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "type", V3D_VIEW_PANDOWN);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELUPMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPLEFT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPRIGHT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELUPMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPUP);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_orbit", WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0)->ptr, "type", V3D_VIEW_STEPDOWN);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_roll", WHEELUPMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "type", V3D_VIEW_STEPLEFT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_roll", WHEELDOWNMOUSE, KM_PRESS, KM_CTRL | KM_SHIFT, 0)->ptr, "type", V3D_VIEW_STEPRIGHT);
-#endif
-
- /* active aligned, replaces '*' key in 2.4x */
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD1, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_FRONT);
- RNA_boolean_set(kmi->ptr, "align_active", true);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD3, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_RIGHT);
- RNA_boolean_set(kmi->ptr, "align_active", true);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD7, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_TOP);
- RNA_boolean_set(kmi->ptr, "align_active", true);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD1, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BACK);
- RNA_boolean_set(kmi->ptr, "align_active", true);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD3, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_LEFT);
- RNA_boolean_set(kmi->ptr, "align_active", true);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", PAD7, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BOTTOM);
- RNA_boolean_set(kmi->ptr, "align_active", true);
-
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", EVT_TWEAK_M, EVT_GESTURE_N, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_TOP);
- RNA_boolean_set(kmi->ptr, "relative", true);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", EVT_TWEAK_M, EVT_GESTURE_S, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_BOTTOM);
- RNA_boolean_set(kmi->ptr, "relative", true);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", EVT_TWEAK_M, EVT_GESTURE_E, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_RIGHT);
- RNA_boolean_set(kmi->ptr, "relative", true);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", EVT_TWEAK_M, EVT_GESTURE_W, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_LEFT);
- RNA_boolean_set(kmi->ptr, "relative", true);
-
-#ifdef WITH_INPUT_NDOF
- /* note: positioned here so keymaps show keyboard keys if assigned */
- /* 3D mouse */
- WM_keymap_add_item(keymap, "VIEW3D_OT_ndof_orbit_zoom", NDOF_MOTION, 0, 0, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_ndof_orbit", NDOF_MOTION, 0, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_ndof_pan", NDOF_MOTION, 0, KM_SHIFT, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_ndof_all", NDOF_MOTION, 0, KM_CTRL | KM_SHIFT, 0);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_selected", NDOF_BUTTON_FIT, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "use_all_regions", false);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_roll", NDOF_BUTTON_ROLL_CCW, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPLEFT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_roll", NDOF_BUTTON_ROLL_CCW, KM_PRESS, 0, 0)->ptr, "type", V3D_VIEW_STEPRIGHT);
-
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_FRONT, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_FRONT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_BACK, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_BACK);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_LEFT, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_LEFT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_RIGHT, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_RIGHT);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_TOP, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_TOP);
- RNA_enum_set(WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_BOTTOM, KM_PRESS, 0, 0)->ptr, "type", RV3D_VIEW_BOTTOM);
-
- /* 3D mouse align */
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_FRONT, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_FRONT);
- RNA_boolean_set(kmi->ptr, "align_active", true);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_RIGHT, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_RIGHT);
- RNA_boolean_set(kmi->ptr, "align_active", true);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_view_axis", NDOF_BUTTON_TOP, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "type", RV3D_VIEW_TOP);
- RNA_boolean_set(kmi->ptr, "align_active", true);
-#endif /* WITH_INPUT_NDOF */
-
- /* drawtype */
- WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_shading_pie", ZKEY, KM_PRESS, 0, 0);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_toggle_shading", ZKEY, KM_PRESS, KM_ALT, 0);
- RNA_enum_set(kmi->ptr, "type", OB_MATERIAL);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_toggle_shading", ZKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "type", OB_RENDER);
-
- /* selection*/
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- RNA_boolean_set(kmi->ptr, "toggle", false);
- RNA_boolean_set(kmi->ptr, "center", false);
- RNA_boolean_set(kmi->ptr, "object", false);
- RNA_boolean_set(kmi->ptr, "enumerate", false);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- RNA_boolean_set(kmi->ptr, "toggle", true);
- RNA_boolean_set(kmi->ptr, "center", false);
- RNA_boolean_set(kmi->ptr, "object", false);
- RNA_boolean_set(kmi->ptr, "enumerate", false);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- RNA_boolean_set(kmi->ptr, "toggle", false);
- RNA_boolean_set(kmi->ptr, "center", true);
- RNA_boolean_set(kmi->ptr, "object", true); /* use Ctrl+Select for 2 purposes */
- RNA_boolean_set(kmi->ptr, "enumerate", false);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- RNA_boolean_set(kmi->ptr, "toggle", false);
- RNA_boolean_set(kmi->ptr, "center", false);
- RNA_boolean_set(kmi->ptr, "object", false);
- RNA_boolean_set(kmi->ptr, "enumerate", true);
-
- /* selection key-combinations */
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- RNA_boolean_set(kmi->ptr, "toggle", true);
- RNA_boolean_set(kmi->ptr, "center", true);
- RNA_boolean_set(kmi->ptr, "object", false);
- RNA_boolean_set(kmi->ptr, "enumerate", false);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- RNA_boolean_set(kmi->ptr, "toggle", false);
- RNA_boolean_set(kmi->ptr, "center", true);
- RNA_boolean_set(kmi->ptr, "object", false);
- RNA_boolean_set(kmi->ptr, "enumerate", true);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- RNA_boolean_set(kmi->ptr, "toggle", true);
- RNA_boolean_set(kmi->ptr, "center", false);
- RNA_boolean_set(kmi->ptr, "object", false);
- RNA_boolean_set(kmi->ptr, "enumerate", true);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- RNA_boolean_set(kmi->ptr, "toggle", true);
- RNA_boolean_set(kmi->ptr, "center", true);
- RNA_boolean_set(kmi->ptr, "object", false);
- RNA_boolean_set(kmi->ptr, "enumerate", true);
-
- WM_keymap_add_item(keymap, "VIEW3D_OT_select_box", BKEY, KM_PRESS, 0, 0);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "mode", SEL_OP_ADD);
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_SHIFT | KM_CTRL, 0);
- RNA_enum_set(kmi->ptr, "mode", SEL_OP_SUB);
- WM_keymap_add_item(keymap, "VIEW3D_OT_select_circle", CKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, "VIEW3D_OT_clip_border", BKEY, KM_PRESS, KM_ALT, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_zoom_border", BKEY, KM_PRESS, KM_SHIFT, 0);
-
- kmi = WM_keymap_add_item(keymap, "VIEW3D_OT_render_border", BKEY, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_item(keymap, "VIEW3D_OT_clear_render_border", BKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
-
- WM_keymap_add_item(keymap, "VIEW3D_OT_camera_to_view", PAD0, KM_PRESS, KM_ALT | KM_CTRL, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_object_as_camera", PAD0, KM_PRESS, KM_CTRL, 0);
-
- WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_snap_pie", SKEY, KM_PRESS, KM_SHIFT, 0);
-
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "VIEW3D_OT_copybuffer", CKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_pastebuffer", VKEY, KM_PRESS, KM_OSKEY, 0);
-#endif
- WM_keymap_add_item(keymap, "VIEW3D_OT_copybuffer", CKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "VIEW3D_OT_pastebuffer", VKEY, KM_PRESS, KM_CTRL, 0);
-
- /* context ops */
- WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_pivot_pie", PERIODKEY, KM_PRESS, 0, 0);
- WM_keymap_add_menu_pie(keymap, "VIEW3D_MT_orientations_pie", COMMAKEY, KM_PRESS, 0, 0);
-
-#ifdef USE_WM_KEYMAP_27X
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", COMMAKEY, KM_PRESS, KM_ALT, 0); /* new in 2.5 */
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_transform_pivot_point_align");
-#endif
-
-#ifdef USE_WM_KEYMAP_27X
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", SPACEKEY, KM_PRESS, KM_CTRL, 0); /* new in 2.5 */
-#else
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", ACCENTGRAVEKEY, KM_PRESS, KM_CTRL, 0);
-#endif
- RNA_string_set(kmi->ptr, "data_path", "space_data.show_gizmo_tool");
-
- transform_keymap_for_space(keyconf, keymap, SPACE_VIEW3D);
+ WM_keymap_ensure(keyconf, "3D View", SPACE_VIEW3D, 0);
fly_modal_keymap(keyconf);
walk_modal_keymap(keyconf);
diff --git a/source/blender/editors/space_view3d/view3d_walk.c b/source/blender/editors/space_view3d/view3d_walk.c
index c5b7725541c..68a40f33368 100644
--- a/source/blender/editors/space_view3d/view3d_walk.c
+++ b/source/blender/editors/space_view3d/view3d_walk.c
@@ -177,59 +177,6 @@ void walk_modal_keymap(wmKeyConfig *keyconf)
keymap = WM_modalkeymap_add(keyconf, "View3D Walk Modal", modal_items);
- /* items for modal map */
- WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_ANY, KM_ANY, 0, WALK_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_CANCEL);
-
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_ANY, KM_ANY, 0, WALK_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, WALK_MODAL_CONFIRM);
-
- WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_FAST_ENABLE);
- WM_modalkeymap_add_item(keymap, LEFTSHIFTKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_FAST_DISABLE);
-
- WM_modalkeymap_add_item(keymap, LEFTALTKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_SLOW_ENABLE);
- WM_modalkeymap_add_item(keymap, LEFTALTKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_SLOW_DISABLE);
-
- /* WASD */
- WM_modalkeymap_add_item(keymap, WKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_DIR_FORWARD);
- WM_modalkeymap_add_item(keymap, SKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_DIR_BACKWARD);
- WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_DIR_LEFT);
- WM_modalkeymap_add_item(keymap, DKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_DIR_RIGHT);
- WM_modalkeymap_add_item(keymap, EKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_DIR_UP);
- WM_modalkeymap_add_item(keymap, QKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_DIR_DOWN);
-
- WM_modalkeymap_add_item(keymap, WKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_FORWARD_STOP);
- WM_modalkeymap_add_item(keymap, SKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_BACKWARD_STOP);
- WM_modalkeymap_add_item(keymap, AKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_LEFT_STOP);
- WM_modalkeymap_add_item(keymap, DKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_RIGHT_STOP);
- WM_modalkeymap_add_item(keymap, EKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_UP_STOP);
- WM_modalkeymap_add_item(keymap, QKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_DOWN_STOP);
-
- WM_modalkeymap_add_item(keymap, UPARROWKEY, KM_PRESS, 0, 0, WALK_MODAL_DIR_FORWARD);
- WM_modalkeymap_add_item(keymap, DOWNARROWKEY, KM_PRESS, 0, 0, WALK_MODAL_DIR_BACKWARD);
- WM_modalkeymap_add_item(keymap, LEFTARROWKEY, KM_PRESS, 0, 0, WALK_MODAL_DIR_LEFT);
- WM_modalkeymap_add_item(keymap, RIGHTARROWKEY, KM_PRESS, 0, 0, WALK_MODAL_DIR_RIGHT);
-
- WM_modalkeymap_add_item(keymap, UPARROWKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_FORWARD_STOP);
- WM_modalkeymap_add_item(keymap, DOWNARROWKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_BACKWARD_STOP);
- WM_modalkeymap_add_item(keymap, LEFTARROWKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_LEFT_STOP);
- WM_modalkeymap_add_item(keymap, RIGHTARROWKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_DIR_RIGHT_STOP);
-
- WM_modalkeymap_add_item(keymap, TABKEY, KM_PRESS, 0, 0, WALK_MODAL_TOGGLE);
- WM_modalkeymap_add_item(keymap, GKEY, KM_PRESS, 0, 0, WALK_MODAL_TOGGLE);
-
- WM_modalkeymap_add_item(keymap, VKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_JUMP);
- WM_modalkeymap_add_item(keymap, VKEY, KM_RELEASE, KM_ANY, 0, WALK_MODAL_JUMP_STOP);
-
- WM_modalkeymap_add_item(keymap, SPACEKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_TELEPORT);
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_ANY, KM_ANY, 0, WALK_MODAL_TELEPORT);
-
- WM_modalkeymap_add_item(keymap, PADPLUSKEY, KM_PRESS, KM_ANY, 0, WALK_MODAL_ACCELERATE);
- WM_modalkeymap_add_item(keymap, PADMINUS, KM_PRESS, KM_ANY, 0, WALK_MODAL_DECELERATE);
- WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, KM_ANY, 0, WALK_MODAL_ACCELERATE);
- WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, KM_ANY, 0, WALK_MODAL_DECELERATE);
-
/* assign map to operators */
WM_modalkeymap_assign(keymap, "VIEW3D_OT_walk");
}
diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c
index 29214565836..069245b7560 100644
--- a/source/blender/editors/transform/transform.c
+++ b/source/blender/editors/transform/transform.c
@@ -940,65 +940,9 @@ wmKeyMap *transform_modal_keymap(wmKeyConfig *keyconf)
wmKeyMap *keymap = WM_modalkeymap_get(keyconf, "Transform Modal Map");
- /* this function is called for each spacetype, only needs to add map once */
- if (keymap && keymap->modal_items) return NULL;
-
keymap = WM_modalkeymap_add(keyconf, "Transform Modal Map", modal_items);
keymap->poll_modal_item = transform_modal_item_poll;
- /* items for modal map */
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_ANY, 0, TFM_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, KM_ANY, 0, TFM_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, KM_ANY, 0, TFM_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_CANCEL);
-
- WM_modalkeymap_add_item(keymap, XKEY, KM_PRESS, 0, 0, TFM_MODAL_AXIS_X);
- WM_modalkeymap_add_item(keymap, YKEY, KM_PRESS, 0, 0, TFM_MODAL_AXIS_Y);
- WM_modalkeymap_add_item(keymap, ZKEY, KM_PRESS, 0, 0, TFM_MODAL_AXIS_Z);
-
- WM_modalkeymap_add_item(keymap, XKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_PLANE_X);
- WM_modalkeymap_add_item(keymap, YKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_PLANE_Y);
- WM_modalkeymap_add_item(keymap, ZKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_PLANE_Z);
-
- WM_modalkeymap_add_item(keymap, CKEY, KM_PRESS, 0, 0, TFM_MODAL_CONS_OFF);
-
- WM_modalkeymap_add_item(keymap, GKEY, KM_PRESS, 0, 0, TFM_MODAL_TRANSLATE);
- WM_modalkeymap_add_item(keymap, RKEY, KM_PRESS, 0, 0, TFM_MODAL_ROTATE);
- WM_modalkeymap_add_item(keymap, SKEY, KM_PRESS, 0, 0, TFM_MODAL_RESIZE);
-
- WM_modalkeymap_add_item(keymap, TABKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_SNAP_TOGGLE);
-
- WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_SNAP_INV_ON);
- WM_modalkeymap_add_item(keymap, LEFTCTRLKEY, KM_RELEASE, KM_ANY, 0, TFM_MODAL_SNAP_INV_OFF);
-
- WM_modalkeymap_add_item(keymap, RIGHTCTRLKEY, KM_PRESS, KM_ANY, 0, TFM_MODAL_SNAP_INV_ON);
- WM_modalkeymap_add_item(keymap, RIGHTCTRLKEY, KM_RELEASE, KM_ANY, 0, TFM_MODAL_SNAP_INV_OFF);
-
- WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, 0, 0, TFM_MODAL_ADD_SNAP);
- WM_modalkeymap_add_item(keymap, AKEY, KM_PRESS, KM_ALT, 0, TFM_MODAL_REMOVE_SNAP);
-
- WM_modalkeymap_add_item(keymap, PAGEUPKEY, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_UP);
- WM_modalkeymap_add_item(keymap, PAGEDOWNKEY, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_DOWN);
- WM_modalkeymap_add_item(keymap, PAGEUPKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_PROPSIZE_UP);
- WM_modalkeymap_add_item(keymap, PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_PROPSIZE_DOWN);
- WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_UP);
- WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, 0, 0, TFM_MODAL_PROPSIZE_DOWN);
- WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_PROPSIZE_UP);
- WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_PROPSIZE_DOWN);
- WM_modalkeymap_add_item(keymap, MOUSEPAN, 0, 0, 0, TFM_MODAL_PROPSIZE);
-
- WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, KM_ALT, 0, TFM_MODAL_EDGESLIDE_UP);
- WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, KM_ALT, 0, TFM_MODAL_EDGESLIDE_DOWN);
-
- WM_modalkeymap_add_item(keymap, PAGEUPKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOIK_LEN_INC);
- WM_modalkeymap_add_item(keymap, PAGEDOWNKEY, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOIK_LEN_DEC);
- WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOIK_LEN_INC);
- WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, KM_SHIFT, 0, TFM_MODAL_AUTOIK_LEN_DEC);
-
- /* node editor only */
- WM_modalkeymap_add_item(keymap, TKEY, KM_PRESS, 0, 0, TFM_MODAL_INSERTOFS_TOGGLE_DIR);
-
return keymap;
}
diff --git a/source/blender/editors/transform/transform_ops.c b/source/blender/editors/transform/transform_ops.c
index ee0b11ead11..853816e8dc9 100644
--- a/source/blender/editors/transform/transform_ops.c
+++ b/source/blender/editors/transform/transform_ops.c
@@ -1194,170 +1194,14 @@ void transform_operatortypes(void)
WM_operatortype_append(TRANSFORM_OT_from_gizmo);
}
-void transform_keymap_for_space(wmKeyConfig *keyconf, wmKeyMap *keymap, int spaceid)
+void ED_keymap_transform(wmKeyConfig *keyconf)
{
- wmKeyMapItem *kmi;
- wmKeyMap *modalmap;
+ wmKeyMap *modalmap = transform_modal_keymap(keyconf);
- /* transform.c, only adds modal map once, checks if it's there */
- modalmap = transform_modal_keymap(keyconf);
-
- /* assign map to operators only the first time */
- if (modalmap) {
- TransformModeItem *tmode;
-
- for (tmode = transform_modes; tmode->idname; tmode++) {
- WM_modalkeymap_assign(modalmap, tmode->idname);
- }
- WM_modalkeymap_assign(modalmap, "TRANSFORM_OT_transform");
- }
-
- switch (spaceid) {
- case SPACE_VIEW3D:
- WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
-
- WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, OP_BEND, WKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, OP_TOSPHERE, SKEY, KM_PRESS, KM_ALT | KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, OP_SHEAR, SKEY, KM_PRESS, KM_ALT | KM_CTRL | KM_SHIFT, 0);
-
-#ifdef USE_WM_KEYMAP_27X
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_create_orientation", SPACEKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "use", true);
-#endif
-
- WM_keymap_add_item(keymap, OP_MIRROR, MKEY, KM_PRESS, KM_CTRL, 0);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_snap");
-
- WM_keymap_add_panel(keymap, "VIEW3D_PT_snapping", TABKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
-
- /* Will fall-through to texture-space transform. */
- kmi = WM_keymap_add_item(keymap, "OBJECT_OT_transform_axis_target", TKEY, KM_PRESS, KM_SHIFT, 0);
-
-#ifdef USE_WM_KEYMAP_27X
- kmi = WM_keymap_add_item(keymap, OP_TRANSLATION, TKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "texture_space", true);
-
- kmi = WM_keymap_add_item(keymap, OP_RESIZE, TKEY, KM_PRESS, KM_SHIFT | KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "texture_space", true);
-#endif
-
- WM_keymap_add_item(keymap, OP_SKIN_RESIZE, AKEY, KM_PRESS, KM_CTRL, 0);
+ TransformModeItem *tmode;
- break;
- case SPACE_ACTION:
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_TIME_TRANSLATE);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_TIME_TRANSLATE);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_TIME_SCALE);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", TKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_TIME_SLIDE);
- break;
- case SPACE_IPO:
- WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND);
-
- WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
- break;
- case SPACE_NLA:
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", GKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_TRANSLATION);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EVT_TWEAK_S, KM_ANY, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_TRANSLATION);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", SKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_TIME_SCALE);
- break;
- case SPACE_NODE:
- WM_keymap_add_item(keymap, "NODE_OT_translate_attach", GKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "NODE_OT_translate_attach", EVT_TWEAK_A, KM_ANY, 0, 0);
- WM_keymap_add_item(keymap, "NODE_OT_translate_attach", EVT_TWEAK_S, KM_ANY, 0, 0);
- /* NB: small trick: macro operator poll may fail due to library data edit,
- * in that case the secondary regular operators are called with same keymap.
- */
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", GKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "release_confirm", true);
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_A, KM_ANY, 0, 0);
- RNA_boolean_set(kmi->ptr, "release_confirm", true);
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_translate", EVT_TWEAK_S, KM_ANY, 0, 0);
- RNA_boolean_set(kmi->ptr, "release_confirm", true);
-
- WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
-
- /* detach and translate */
- WM_keymap_add_item(keymap, "NODE_OT_move_detach_links", DKEY, KM_PRESS, KM_ALT, 0);
- /* XXX release_confirm is set in the macro operator definition */
- WM_keymap_add_item(keymap, "NODE_OT_move_detach_links_release", EVT_TWEAK_A, KM_ANY, KM_ALT, 0);
- WM_keymap_add_item(keymap, "NODE_OT_move_detach_links", EVT_TWEAK_S, KM_ANY, KM_ALT, 0);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_snap");
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", TABKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.snap_node_element");
- break;
- case SPACE_SEQ:
- WM_keymap_add_item(keymap, OP_SEQ_SLIDE, GKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, OP_SEQ_SLIDE, EVT_TWEAK_S, KM_ANY, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "TRANSFORM_OT_transform", EKEY, KM_PRESS, 0, 0);
- RNA_enum_set(kmi->ptr, "mode", TFM_TIME_EXTEND);
- break;
- case SPACE_IMAGE:
- WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
-
- WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
-
- WM_keymap_add_item(keymap, OP_SHEAR, SKEY, KM_PRESS, KM_ALT | KM_CTRL | KM_SHIFT, 0);
-
- WM_keymap_add_item(keymap, "TRANSFORM_OT_mirror", MKEY, KM_PRESS, KM_CTRL, 0);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", TABKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_snap");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_menu_enum", TABKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.snap_uv_element");
- break;
- case SPACE_CLIP:
- WM_keymap_add_item(keymap, OP_TRANSLATION, GKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, OP_TRANSLATION, EVT_TWEAK_S, KM_ANY, 0, 0);
- WM_keymap_add_item(keymap, OP_RESIZE, SKEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, OP_ROTATION, RKEY, KM_PRESS, 0, 0);
- break;
- default:
- break;
+ for (tmode = transform_modes; tmode->idname; tmode++) {
+ WM_modalkeymap_assign(modalmap, tmode->idname);
}
+ WM_modalkeymap_assign(modalmap, "TRANSFORM_OT_transform");
}
diff --git a/source/blender/editors/util/CMakeLists.txt b/source/blender/editors/util/CMakeLists.txt
index 82fced0a3c7..6bef0f77e1a 100644
--- a/source/blender/editors/util/CMakeLists.txt
+++ b/source/blender/editors/util/CMakeLists.txt
@@ -43,7 +43,6 @@ set(SRC
ed_transverts.c
ed_util.c
gizmo_utils.c
- keymap_templates.c
numinput.c
select_utils.c
@@ -65,7 +64,6 @@ set(SRC
../include/ED_keyframes_draw.h
../include/ED_keyframes_edit.h
../include/ED_keyframing.h
- ../include/ED_keymap_templates.h
../include/ED_lattice.h
../include/ED_logic.h
../include/ED_markers.h
diff --git a/source/blender/editors/uvedit/uvedit_ops.c b/source/blender/editors/uvedit/uvedit_ops.c
index 9bf1bb3df20..2d9995d3ccc 100644
--- a/source/blender/editors/uvedit/uvedit_ops.c
+++ b/source/blender/editors/uvedit/uvedit_ops.c
@@ -79,7 +79,6 @@
#include "ED_object.h"
#include "ED_screen.h"
#include "ED_select_utils.h"
-#include "ED_keymap_templates.h"
#include "ED_transform.h"
#include "RNA_access.h"
@@ -4697,107 +4696,9 @@ void ED_operatortypes_uvedit(void)
void ED_keymap_uvedit(wmKeyConfig *keyconf)
{
wmKeyMap *keymap;
- wmKeyMapItem *kmi;
keymap = WM_keymap_ensure(keyconf, "UV Editor", 0, 0);
keymap->poll = ED_operator_uvedit_can_uv_sculpt;
-
- /* cursor */
- WM_keymap_add_item(keymap, "UV_OT_cursor_set", ACTIONMOUSE, KM_CLICK, 0, 0);
-
-#ifdef USE_WM_KEYMAP_27X
- /* Uv sculpt toggle */
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_toggle", QKEY, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", "tool_settings.use_uv_sculpt");
-#endif
-
- /* Select Element (Sync Select: on) */
- ED_keymap_editmesh_elem_mode(keyconf, keymap);
- /* Hack to prevent fall-through, when the button isn't visible. */
- WM_keymap_add_item(keymap, "MESH_OT_select_mode", FOURKEY, KM_PRESS, 0, 0);
- /* Select Element (Sync Select: off) */
- WM_keymap_add_context_enum_set_items(
- keymap, rna_enum_mesh_select_mode_uv_items, "tool_settings.uv_select_mode",
- ONEKEY, KM_PRESS, 0, 0);
-
- /* Mark edge seam */
- WM_keymap_add_item(keymap, "UV_OT_mark_seam", EKEY, KM_PRESS, KM_CTRL, 0);
-
- /* pick selection */
- RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select", SELECTMOUSE, KM_PRESS, 0, 0)->ptr, "extend", false);
- RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select", SELECTMOUSE, KM_PRESS, KM_SHIFT, 0)->ptr, "extend", true);
- RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select_loop", SELECTMOUSE, KM_PRESS, KM_ALT, 0)->ptr, "extend", false);
- RNA_boolean_set(WM_keymap_add_item(keymap, "UV_OT_select_loop", SELECTMOUSE, KM_PRESS, KM_SHIFT | KM_ALT, 0)->ptr, "extend", true);
- WM_keymap_add_item(keymap, "UV_OT_select_split", YKEY, KM_PRESS, 0, 0);
-
- /* box/circle selection */
- kmi = WM_keymap_add_item(keymap, "UV_OT_select_box", BKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "pinned", false);
- kmi = WM_keymap_add_item(keymap, "UV_OT_select_box", BKEY, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "pinned", true);
-
- WM_keymap_add_item(keymap, "UV_OT_select_circle", CKEY, KM_PRESS, 0, 0);
-
- kmi = WM_keymap_add_item(keymap, "UV_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "UV_OT_select_lasso", EVT_TWEAK_A, KM_ANY, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "deselect", true);
-
- /* selection manipulation */
- kmi = WM_keymap_add_item(keymap, "UV_OT_select_linked", LKEY, KM_PRESS, KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "UV_OT_select_linked_pick", LKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "extend", true);
- RNA_boolean_set(kmi->ptr, "deselect", false);
- kmi = WM_keymap_add_item(keymap, "UV_OT_select_linked", LKEY, KM_PRESS, KM_CTRL | KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", true);
- kmi = WM_keymap_add_item(keymap, "UV_OT_select_linked_pick", LKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "extend", false);
- RNA_boolean_set(kmi->ptr, "deselect", true);
-
- /* select more/less */
- WM_keymap_add_item(keymap, "UV_OT_select_more", PADPLUSKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "UV_OT_select_less", PADMINUS, KM_PRESS, KM_CTRL, 0);
-
- ED_keymap_template_select_all(keymap, "UV_OT_select_all");
-
- WM_keymap_add_item(keymap, "UV_OT_select_pinned", PKEY, KM_PRESS, KM_SHIFT, 0);
-
- WM_keymap_add_menu(keymap, "IMAGE_MT_uvs_weldalign", WKEY, KM_PRESS, KM_SHIFT, 0);
-
- /* uv operations */
- WM_keymap_add_item(keymap, "UV_OT_stitch", VKEY, KM_PRESS, 0, 0);
- kmi = WM_keymap_add_item(keymap, "UV_OT_pin", PKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "clear", false);
- kmi = WM_keymap_add_item(keymap, "UV_OT_pin", PKEY, KM_PRESS, KM_ALT, 0);
- RNA_boolean_set(kmi->ptr, "clear", true);
-
- /* unwrap */
- WM_keymap_add_item(keymap, "UV_OT_unwrap", UKEY, KM_PRESS, 0, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "UV_OT_minimize_stretch", VKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "UV_OT_pack_islands", PKEY, KM_PRESS, KM_CTRL, 0);
- WM_keymap_add_item(keymap, "UV_OT_average_islands_scale", AKEY, KM_PRESS, KM_CTRL, 0);
-#endif
-
- /* hide */
- kmi = WM_keymap_add_item(keymap, "UV_OT_hide", HKEY, KM_PRESS, 0, 0);
- RNA_boolean_set(kmi->ptr, "unselected", false);
- kmi = WM_keymap_add_item(keymap, "UV_OT_hide", HKEY, KM_PRESS, KM_SHIFT, 0);
- RNA_boolean_set(kmi->ptr, "unselected", true);
-
- WM_keymap_add_item(keymap, "UV_OT_reveal", HKEY, KM_PRESS, KM_ALT, 0);
-
- /* menus */
- WM_keymap_add_menu_pie(keymap, "IMAGE_MT_uvs_snap_pie", SKEY, KM_PRESS, KM_SHIFT, 0);
- WM_keymap_add_menu(keymap, "IMAGE_MT_uvs_select_mode", TABKEY, KM_PRESS, KM_CTRL, 0);
-
- ED_keymap_proportional_cycle(keyconf, keymap);
- ED_keymap_proportional_editmode(keyconf, keymap, false);
-
- transform_keymap_for_space(keyconf, keymap, SPACE_IMAGE);
}
/** \} */
diff --git a/source/blender/windowmanager/WM_keymap.h b/source/blender/windowmanager/WM_keymap.h
index dfa29321bdf..b27d6b44ab0 100644
--- a/source/blender/windowmanager/WM_keymap.h
+++ b/source/blender/windowmanager/WM_keymap.h
@@ -100,6 +100,8 @@ void WM_keymap_add_context_enum_set_items(
wmKeyMap *WM_keymap_guess_opname(const struct bContext *C, const char *opname);
+void WM_keymap_fix_linking(void);
+
/* Modal Keymap */
int WM_modalkeymap_items_to_string(
diff --git a/source/blender/windowmanager/intern/wm_keymap_utils.c b/source/blender/windowmanager/intern/wm_keymap_utils.c
index ba1874b992c..47dc07f556e 100644
--- a/source/blender/windowmanager/intern/wm_keymap_utils.c
+++ b/source/blender/windowmanager/intern/wm_keymap_utils.c
@@ -357,4 +357,8 @@ wmKeyMap *WM_keymap_guess_opname(const bContext *C, const char *opname)
return km;
}
+void WM_keymap_fix_linking(void)
+{
+}
+
/** \} */
diff --git a/source/blender/windowmanager/intern/wm_operators.c b/source/blender/windowmanager/intern/wm_operators.c
index 7862ed9fd1b..56171167b99 100644
--- a/source/blender/windowmanager/intern/wm_operators.c
+++ b/source/blender/windowmanager/intern/wm_operators.c
@@ -3214,31 +3214,6 @@ static void gesture_circle_modal_keymap(wmKeyConfig *keyconf)
keymap = WM_modalkeymap_add(keyconf, "View3D Gesture Circle", modal_items);
- /* items for modal map */
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, GESTURE_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_ANY, KM_ANY, 0, GESTURE_MODAL_CANCEL);
-
- WM_modalkeymap_add_item(keymap, RETKEY, KM_PRESS, KM_ANY, 0, GESTURE_MODAL_CONFIRM);
- WM_modalkeymap_add_item(keymap, PADENTER, KM_PRESS, 0, 0, GESTURE_MODAL_CONFIRM);
-
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_SELECT);
-
- /* Note: use 'KM_ANY' for release, so the circle exits on any mouse release,
- * this is needed when circle select is activated as a tool. */
-
- /* left mouse shift for deselect too */
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_SHIFT, 0, GESTURE_MODAL_DESELECT);
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, GESTURE_MODAL_NOP);
-
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_DESELECT); // default 2.4x
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, KM_ANY, 0, GESTURE_MODAL_NOP); // default 2.4x
-
- WM_modalkeymap_add_item(keymap, WHEELUPMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_CIRCLE_SUB);
- WM_modalkeymap_add_item(keymap, PADMINUS, KM_PRESS, 0, 0, GESTURE_MODAL_CIRCLE_SUB);
- WM_modalkeymap_add_item(keymap, WHEELDOWNMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_CIRCLE_ADD);
- WM_modalkeymap_add_item(keymap, PADPLUSKEY, KM_PRESS, 0, 0, GESTURE_MODAL_CIRCLE_ADD);
- WM_modalkeymap_add_item(keymap, MOUSEPAN, 0, 0, 0, GESTURE_MODAL_CIRCLE_SIZE);
-
/* assign map to operators */
WM_modalkeymap_assign(keymap, "VIEW3D_OT_select_circle");
WM_modalkeymap_assign(keymap, "UV_OT_select_circle");
@@ -3248,7 +3223,6 @@ static void gesture_circle_modal_keymap(wmKeyConfig *keyconf)
WM_modalkeymap_assign(keymap, "GPENCIL_OT_select_circle");
WM_modalkeymap_assign(keymap, "GRAPH_OT_select_circle");
WM_modalkeymap_assign(keymap, "ACTION_OT_select_circle");
-
}
/* straight line modal operators */
@@ -3268,13 +3242,6 @@ static void gesture_straightline_modal_keymap(wmKeyConfig *keyconf)
keymap = WM_modalkeymap_add(keyconf, "Gesture Straight Line", modal_items);
- /* items for modal map */
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, GESTURE_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_ANY, KM_ANY, 0, GESTURE_MODAL_CANCEL);
-
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_BEGIN);
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, GESTURE_MODAL_SELECT);
-
/* assign map to operators */
WM_modalkeymap_assign(keymap, "IMAGE_OT_sample_line");
WM_modalkeymap_assign(keymap, "PAINT_OT_weight_gradient");
@@ -3300,24 +3267,6 @@ static void gesture_box_modal_keymap(wmKeyConfig *keyconf)
keymap = WM_modalkeymap_add(keyconf, "Gesture Box", modal_items);
- /* items for modal map */
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, GESTURE_MODAL_CANCEL);
-
- /* Note: cancel only on press otherwise you cannot map this to RMB-gesture */
- WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_PRESS, KM_ANY, 0, GESTURE_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_RELEASE, KM_ANY, 0, GESTURE_MODAL_SELECT);
-
- /* allow shift leftclick for deselect too */
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, KM_SHIFT, 0, GESTURE_MODAL_BEGIN);
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_SHIFT, 0, GESTURE_MODAL_DESELECT);
-
- /* any unhandled leftclick release handles select */
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_BEGIN);
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, KM_ANY, 0, GESTURE_MODAL_SELECT);
-
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_BEGIN);
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, 0, 0, GESTURE_MODAL_DESELECT);
-
/* assign map to operators */
WM_modalkeymap_assign(keymap, "ACTION_OT_select_box");
WM_modalkeymap_assign(keymap, "ANIM_OT_channels_select_box");
@@ -3366,16 +3315,6 @@ static void gesture_zoom_border_modal_keymap(wmKeyConfig *keyconf)
keymap = WM_modalkeymap_add(keyconf, "Gesture Zoom Border", modal_items);
- /* items for modal map */
- WM_modalkeymap_add_item(keymap, ESCKEY, KM_PRESS, KM_ANY, 0, GESTURE_MODAL_CANCEL);
- WM_modalkeymap_add_item(keymap, RIGHTMOUSE, KM_ANY, KM_ANY, 0, GESTURE_MODAL_CANCEL);
-
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_BEGIN);
- WM_modalkeymap_add_item(keymap, LEFTMOUSE, KM_RELEASE, 0, 0, GESTURE_MODAL_IN);
-
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_PRESS, 0, 0, GESTURE_MODAL_BEGIN);
- WM_modalkeymap_add_item(keymap, MIDDLEMOUSE, KM_RELEASE, 0, 0, GESTURE_MODAL_OUT);
-
/* assign map to operators */
WM_modalkeymap_assign(keymap, "VIEW2D_OT_zoom_border");
WM_modalkeymap_assign(keymap, "VIEW3D_OT_zoom_border");
@@ -3385,142 +3324,15 @@ static void gesture_zoom_border_modal_keymap(wmKeyConfig *keyconf)
/* default keymap for windows and screens, only call once per WM */
void wm_window_keymap(wmKeyConfig *keyconf)
{
- wmKeyMap *keymap = WM_keymap_ensure(keyconf, "Window", 0, 0);
- wmKeyMapItem *kmi;
-
- /* note, this doesn't replace existing keymap items */
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_verify_item(keymap, "WM_OT_window_new", WKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
-#endif
-
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "WM_OT_read_homefile", NKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_menu(keymap, "TOPBAR_MT_file_open_recent", OKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "WM_OT_open_mainfile", OKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "WM_OT_save_mainfile", SKEY, KM_PRESS, KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "WM_OT_save_as_mainfile", SKEY, KM_PRESS, KM_SHIFT | KM_OSKEY, 0);
- WM_keymap_add_item(keymap, "WM_OT_quit_blender", QKEY, KM_PRESS, KM_OSKEY, 0);
-#endif
- WM_keymap_add_item(keymap, "WM_OT_read_homefile", NKEY, KM_PRESS, KM_CTRL, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "WM_OT_save_homefile", UKEY, KM_PRESS, KM_CTRL, 0);
-#endif
- WM_keymap_add_menu(keymap, "TOPBAR_MT_file_open_recent", OKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
- WM_keymap_add_item(keymap, "WM_OT_open_mainfile", OKEY, KM_PRESS, KM_CTRL, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "WM_OT_open_mainfile", F1KEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "WM_OT_link", OKEY, KM_PRESS, KM_CTRL | KM_ALT, 0);
- WM_keymap_add_item(keymap, "WM_OT_append", F1KEY, KM_PRESS, KM_SHIFT, 0);
-#endif
-
- WM_keymap_add_item(keymap, "WM_OT_save_mainfile", SKEY, KM_PRESS, KM_CTRL, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "WM_OT_save_mainfile", WKEY, KM_PRESS, KM_CTRL, 0);
-#endif
- WM_keymap_add_item(keymap, "WM_OT_save_as_mainfile", SKEY, KM_PRESS, KM_SHIFT | KM_CTRL, 0);
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "WM_OT_save_as_mainfile", F2KEY, KM_PRESS, 0, 0);
- kmi = WM_keymap_add_item(keymap, "WM_OT_save_as_mainfile", SKEY, KM_PRESS, KM_ALT | KM_CTRL, 0);
- RNA_boolean_set(kmi->ptr, "copy", true);
-
- WM_keymap_verify_item(keymap, "WM_OT_window_fullscreen_toggle", F11KEY, KM_PRESS, KM_ALT, 0);
-#endif
-
- WM_keymap_add_item(keymap, "WM_OT_quit_blender", QKEY, KM_PRESS, KM_CTRL, 0);
-
- /* F-Keys are a hassle on some macos systems. */
-#ifdef __APPLE__
- WM_keymap_add_item(keymap, "WM_OT_search_menu", FKEY, KM_PRESS, KM_OSKEY, 0);
-#endif
-
-#ifdef USE_WM_KEYMAP_27X
- WM_keymap_add_item(keymap, "WM_OT_doc_view_manual_ui_context", F1KEY, KM_PRESS, KM_ALT, 0);
-
- /* debug/testing */
- WM_keymap_verify_item(keymap, "WM_OT_redraw_timer", TKEY, KM_PRESS, KM_ALT | KM_CTRL, 0);
- WM_keymap_verify_item(keymap, "WM_OT_debug_menu", DKEY, KM_PRESS, KM_ALT | KM_CTRL, 0);
-#else
- WM_keymap_add_item(keymap, "WM_OT_doc_view_manual_ui_context", F1KEY, KM_PRESS, 0, 0);
- WM_keymap_add_menu(keymap, "TOPBAR_MT_file_specials", F2KEY, KM_PRESS, 0, 0);
- WM_keymap_add_item(keymap, "WM_OT_search_menu", F3KEY, KM_PRESS, 0, 0);
- WM_keymap_add_menu(keymap, "TOPBAR_MT_window_specials", F4KEY, KM_PRESS, 0, 0);
-#endif
-
- /* menus that can be accessed anywhere in blender */
- WM_keymap_add_menu(keymap, "SCREEN_MT_user_menu", QKEY, KM_PRESS, 0, 0);
-
-#ifdef WITH_INPUT_NDOF
- WM_keymap_add_menu(keymap, "USERPREF_MT_ndof_settings", NDOF_BUTTON_MENU, KM_PRESS, 0, 0);
-#endif
-
- WM_keymap_add_item(keymap, "WM_OT_toolbar", SPACEKEY, KM_PRESS, 0, 0);
-
- /* Space switching */
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F3KEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "area.type");
- RNA_string_set(kmi->ptr, "value", "NODE_EDITOR");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F4KEY, KM_PRESS, KM_SHIFT, 0); /* new in 2.5x, was data browser */
- RNA_string_set(kmi->ptr, "data_path", "area.type");
- RNA_string_set(kmi->ptr, "value", "CONSOLE");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F5KEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "area.type");
- RNA_string_set(kmi->ptr, "value", "VIEW_3D");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F6KEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "area.type");
- RNA_string_set(kmi->ptr, "value", "GRAPH_EDITOR");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F7KEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "area.type");
- RNA_string_set(kmi->ptr, "value", "PROPERTIES");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F8KEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "area.type");
- RNA_string_set(kmi->ptr, "value", "SEQUENCE_EDITOR");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F9KEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "area.type");
- RNA_string_set(kmi->ptr, "value", "OUTLINER");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F10KEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "area.type");
- RNA_string_set(kmi->ptr, "value", "IMAGE_EDITOR");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F11KEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "area.type");
- RNA_string_set(kmi->ptr, "value", "TEXT_EDITOR");
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_set_enum", F12KEY, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", "area.type");
- RNA_string_set(kmi->ptr, "value", "DOPESHEET_EDITOR");
-
-#ifdef WITH_INPUT_NDOF
- /* ndof speed */
- const char *data_path = "user_preferences.inputs.ndof_sensitivity";
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_scale_float", NDOF_BUTTON_PLUS, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", data_path);
- RNA_float_set(kmi->ptr, "value", 1.1f);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_scale_float", NDOF_BUTTON_MINUS, KM_PRESS, 0, 0);
- RNA_string_set(kmi->ptr, "data_path", data_path);
- RNA_float_set(kmi->ptr, "value", 1.0f / 1.1f);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_scale_float", NDOF_BUTTON_PLUS, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", data_path);
- RNA_float_set(kmi->ptr, "value", 1.5f);
-
- kmi = WM_keymap_add_item(keymap, "WM_OT_context_scale_float", NDOF_BUTTON_MINUS, KM_PRESS, KM_SHIFT, 0);
- RNA_string_set(kmi->ptr, "data_path", data_path);
- RNA_float_set(kmi->ptr, "value", 1.0f / 1.5f);
-#endif /* WITH_INPUT_NDOF */
+ WM_keymap_ensure(keyconf, "Window", 0, 0);
wm_gizmos_keymap(keyconf);
gesture_circle_modal_keymap(keyconf);
gesture_box_modal_keymap(keyconf);
gesture_zoom_border_modal_keymap(keyconf);
gesture_straightline_modal_keymap(keyconf);
+
+ WM_keymap_fix_linking();
}
/**