Кей-бинды (кей-коды, щорт-коды) – это комбинации клавиш, назначенные в Blender, на какое-то определенное действие. Так, например, при нажатии комбинации клавиш Shift + a открывается меню добавления новых объектов в сцену. Надо сказать, что важность кей-биндов в Blender огромна, большая часть рабочих процессов построена именно на работе с нажатием кнопок на клавиатуре. И все же, иногда возникает необходимость кей-бинды удалять.
Проще всего удалять кей-бинды вручную.
Для этого нужно открыть рабочую область “Preferences”, перейти на вкладку “Keymap” в открывшемся списке найти нужный кей-бинд и удалить его, нажатием на кнопку с крестиком.
Также кей-бинды можно удалять и при помощи Blender Python API.
В API все кей-бинды хранятся в контейнере кей-мап (Keymap). Таких контейнеров много, каждый предназначается для своей области, например, обычно разработчики аддонов помещают все назначаемые каждому отдельному аддону кей-бинды в один кей-мап.
Получить список всех кей-мапов можно через список keymaps.
|
1 2 3 |
bpy.context.window_manager.keyconfigs.default.keymaps[:] # [bpy.data.window_managers['WinMan']...KeyMap, ...] |
Для удобства можно вывести список кей-мапов вмести с их именами.
|
1 2 3 4 5 6 |
for keymap in bpy.context.window_manager.keyconfigs.default.keymaps: print(keymap.name, keymap) # Window <bpy_struct, KeyMap("Window") at 0x000002A16B6A7EC8> # Screen <bpy_struct, KeyMap("Screen") at 0x000002A16B6A7D88> # ... |
Зная имя кей-мапа, можно получить его из списка по имени. Например, для кей-мапа “Info”:
|
1 2 3 |
bpy.context.window_manager.keyconfigs.default.keymaps['Info'] # bpy.data.window_managers['WinMan']...KeyMap |
Получив указатель на нужный кей-мап, можно получить список всех кей-биндов, содержащихся в нем.
Выведем все кей-бинды для кей-мапа “Info”.
|
1 2 3 4 5 6 |
for keymap_item in bpy.context.window_manager.keyconfigs.default.keymaps['Info'].keymap_items: print(keymap_item.name, keymap_item) # Select Report <bpy_struct, KeyMapItem("info.select_pick") at 0x000001F0B6A31488> # Box Select <bpy_struct, KeyMapItem("info.select_box") at 0x000001F0B6A313C8> # ... |
Имея указатель на нужный кей-бинд и кей-мап, которому он принадлежит, кей-бинд можно удалить.
Для примера удалим все кей-бинды в кей-мапе “Info”.
|
1 2 |
for keymap_item in bpy.context.window_manager.keyconfigs.default.keymaps['Info'].keymap_items: info_keymap.keymap_items.remove(keymap_item) |
Таким образом можно удалить абсолютно все кей-бинды во всех кей-мапах. Ну, если вдруг это вам зачем-то будет нужно.
|
1 2 3 |
for keymap in bpy.context.window_manager.keyconfigs.default.keymaps: for keymap_item in keymap.keymap_items: keymap.keymap_items.remove(keymap_item) |
Однако учтите, что после выполнения этого кода, Blender будет практически не работоспособен!

.blend file on Patreon