[Blender]ウィンドウ毎の未使用キーマップをリストアップするスクリプト

例によってchatGPTに書いてもらいました。
システムコンソールにリストアップされます。
今表示中のウィンドウが対象になります。
手元に無いキーも含まれます。

import bpy

# Blenderの全キーリストを作成
all_keys = {
    'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z',
    'ZERO', 'ONE', 'TWO', 'THREE', 'FOUR', 'FIVE', 'SIX', 'SEVEN', 'EIGHT', 'NINE',
    'LEFT_CTRL', 'LEFT_ALT', 'LEFT_SHIFT', 'RIGHT_CTRL', 'RIGHT_ALT', 'RIGHT_SHIFT',
    'OSKEY', 'GRLESS', 'ESC', 'TAB', 'RET', 'SPACE', 'LINE_FEED', 'BACK_SPACE', 'DEL', 'SEMI_COLON',
    'PERIOD', 'COMMA', 'QUOTE', 'ACCENT_GRAVE', 'MINUS', 'SLASH', 'BACK_SLASH', 'EQUAL', 'LEFT_BRACKET', 'RIGHT_BRACKET',
    'LEFT_ARROW', 'DOWN_ARROW', 'RIGHT_ARROW', 'UP_ARROW',
    'NUMPAD_2', 'NUMPAD_4', 'NUMPAD_6', 'NUMPAD_8', 'NUMPAD_1', 'NUMPAD_3', 'NUMPAD_5', 'NUMPAD_7', 'NUMPAD_9', 'NUMPAD_0', 'NUMPAD_PERIOD',
    'NUMPAD_SLASH', 'NUMPAD_ASTERIX', 'NUMPAD_MINUS', 'NUMPAD_ENTER', 'NUMPAD_PLUS',
    'F1', 'F2', 'F3', 'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'F10', 'F11', 'F12', 'F13', 'F14', 'F15', 'F16', 'F17', 'F18', 'F19',
    'PAUSE', 'INSERT', 'HOME', 'PAGE_UP', 'PAGE_DOWN', 'END'
}

# 現在のキーマップを取得
keyconfigs = bpy.context.window_manager.keyconfigs
keymaps = keyconfigs.user.keymaps

# エリア毎のキーマップを取得
area_keymaps = {}
for area in bpy.context.workspace.screens[0].areas:
    area_type = area.type
    if area_type not in area_keymaps:
        area_keymaps[area_type] = set()
    for keymap in keymaps:
        if keymap.is_modal:
            continue
        for item in keymap.keymap_items:
            if item.type in all_keys and keymap.space_type == area_type:
                area_keymaps[area_type].add(item.type)

# 結果を出力
for area_type, used_keys in area_keymaps.items():
    unused_keys = all_keys - used_keys
    print(f"\nUnused Keys in {area_type}:")
    for key in sorted(unused_keys):
        print(key)



この記事が気に入ったらサポートをしてみませんか?