def addon_keymap_register(keymap_data): """ Register a set of keymaps for addons using a list of keymaps. See 'blender_defaults.py' for examples of the format this takes. """ import bpy wm = bpy.context.window_manager from bl_keymap_utils.io import keymap_init_from_data kconf = wm.keyconfigs.addon if not kconf: return # happens in background mode... for km_name, km_args, km_content in keymap_data: km_space_type = km_args["space_type"] km_region_type = km_args["region_type"] km_modal = km_args.get("modal", False) kmap = next(iter( k for k in kconf.keymaps if k.name == km_name and k.region_type == km_region_type and k.space_type == km_space_type and k.is_modal == km_modal ), None) if kmap is None: kmap = kconf.keymaps.new(km_name, **km_args) keymap_init_from_data(kmap, km_content["items"], is_modal=km_modal)
def addon_keymap_register(keymap_data): """ Register a set of keymaps for addons using a list of keymaps. See 'blender_defaults.py' for examples of the format this takes. """ import bpy wm = bpy.context.window_manager from bl_keymap_utils.io import keymap_init_from_data kconf = wm.keyconfigs.addon if not kconf: return # happens in background mode... for km_name, km_args, km_content in keymap_data: km_space_type = km_args["space_type"] km_region_type = km_args["region_type"] km_modal = km_args.get("modal", False) kmap = next( iter(k for k in kconf.keymaps if k.name == km_name and k.region_type == km_region_type and k.space_type == km_space_type and k.is_modal == km_modal), None) if kmap is None: kmap = kconf.keymaps.new(km_name, **km_args) keymap_init_from_data(kmap, km_content["items"], is_modal=km_modal)
def keymap_fn(km): if keymap_fn.keymap_data: from bl_keymap_utils.io import keymap_init_from_data keymap_init_from_data(km, keymap_fn.keymap_data)