Files
Beyond-KLE/mock/src/domain/qmkBasicKeycodes.ts
T
ewdernaandClaude Opus 5.5 fccbc28bee mock: 仮決定に沿ってモックを実装する(PHY Editor・IDX・ELC・MAP・Generator)
provisional/decisions.md の仮決定(T-1〜T-28)に従い、mock/ に Vue 3 + Vite + TypeScript のモックを置いた。
T-3 の1〜3(回転したクラスター内のドラッグと保存の往復、IDX・MAPとの連携、ELCと出力の対応表)まで。疑似デバイスとの往復(T-24)は未着手。

- KLE JSONの入出力は、KLE本家の serial.js の deserialize の結果を期待値とする fixture(tests/fixtures/kle-oracle.json)で照合した。本家のコードは取り込んでいない(T-7)
- 基本キーコードの表は QMK の data/constants/keycodes/keycodes_0.0.1_basic.hjson(1e340cd)から抽出した
- 実装は Codex(Luna)、レビューは Codex(Sol)。検証: Vitest 53件、Playwright 20件、vue-tsc、vite build
- TypeScript は vue-tsc が 7 系に未対応のため 6 系に固定した
- 操作性の改善(ELCの提供者の表示、一括配線とGeneratorのピン設定の引き継ぎ、キー内の文字のはみ出し)は別途行う

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AATqjRyp6rrnwTNdYw8XBT
2026-09-25 22:42:30 +09:00

1210 lines
19 KiB
TypeScript

// QMKの基本キーコード(group: basic / modifiers / internal)の正式名・別名・表示名。T-22, T-23
// 出典: https://github.com/qmk/qmk_firmware/blob/1e340cd59c1012d5f4d48b483b5c14e3e99b2bc3/data/constants/keycodes/keycodes_0.0.1_basic.hjson
// 上記ファイルから機械的に抽出した(手で編集しない)。
export type QmkKeycode = {
code: string;
group: "basic" | "modifiers" | "internal";
key: string;
label: string;
aliases: string[];
};
export const qmkBasicKeycodes: QmkKeycode[] = [
{
code: "0x0000",
group: "internal",
key: "KC_NO",
label: "N/A",
aliases: ["XXXXXXX"],
},
{
code: "0x0001",
group: "internal",
key: "KC_TRANSPARENT",
label: "Transparent",
aliases: ["_______", "KC_TRNS"],
},
{
code: "0x0004",
group: "basic",
key: "KC_A",
label: "A",
aliases: [],
},
{
code: "0x0005",
group: "basic",
key: "KC_B",
label: "B",
aliases: [],
},
{
code: "0x0006",
group: "basic",
key: "KC_C",
label: "C",
aliases: [],
},
{
code: "0x0007",
group: "basic",
key: "KC_D",
label: "D",
aliases: [],
},
{
code: "0x0008",
group: "basic",
key: "KC_E",
label: "E",
aliases: [],
},
{
code: "0x0009",
group: "basic",
key: "KC_F",
label: "F",
aliases: [],
},
{
code: "0x000A",
group: "basic",
key: "KC_G",
label: "G",
aliases: [],
},
{
code: "0x000B",
group: "basic",
key: "KC_H",
label: "H",
aliases: [],
},
{
code: "0x000C",
group: "basic",
key: "KC_I",
label: "I",
aliases: [],
},
{
code: "0x000D",
group: "basic",
key: "KC_J",
label: "J",
aliases: [],
},
{
code: "0x000E",
group: "basic",
key: "KC_K",
label: "K",
aliases: [],
},
{
code: "0x000F",
group: "basic",
key: "KC_L",
label: "L",
aliases: [],
},
{
code: "0x0010",
group: "basic",
key: "KC_M",
label: "M",
aliases: [],
},
{
code: "0x0011",
group: "basic",
key: "KC_N",
label: "N",
aliases: [],
},
{
code: "0x0012",
group: "basic",
key: "KC_O",
label: "O",
aliases: [],
},
{
code: "0x0013",
group: "basic",
key: "KC_P",
label: "P",
aliases: [],
},
{
code: "0x0014",
group: "basic",
key: "KC_Q",
label: "Q",
aliases: [],
},
{
code: "0x0015",
group: "basic",
key: "KC_R",
label: "R",
aliases: [],
},
{
code: "0x0016",
group: "basic",
key: "KC_S",
label: "S",
aliases: [],
},
{
code: "0x0017",
group: "basic",
key: "KC_T",
label: "T",
aliases: [],
},
{
code: "0x0018",
group: "basic",
key: "KC_U",
label: "U",
aliases: [],
},
{
code: "0x0019",
group: "basic",
key: "KC_V",
label: "V",
aliases: [],
},
{
code: "0x001A",
group: "basic",
key: "KC_W",
label: "W",
aliases: [],
},
{
code: "0x001B",
group: "basic",
key: "KC_X",
label: "X",
aliases: [],
},
{
code: "0x001C",
group: "basic",
key: "KC_Y",
label: "Y",
aliases: [],
},
{
code: "0x001D",
group: "basic",
key: "KC_Z",
label: "Z",
aliases: [],
},
{
code: "0x001E",
group: "basic",
key: "KC_1",
label: "1",
aliases: [],
},
{
code: "0x001F",
group: "basic",
key: "KC_2",
label: "2",
aliases: [],
},
{
code: "0x0020",
group: "basic",
key: "KC_3",
label: "3",
aliases: [],
},
{
code: "0x0021",
group: "basic",
key: "KC_4",
label: "4",
aliases: [],
},
{
code: "0x0022",
group: "basic",
key: "KC_5",
label: "5",
aliases: [],
},
{
code: "0x0023",
group: "basic",
key: "KC_6",
label: "6",
aliases: [],
},
{
code: "0x0024",
group: "basic",
key: "KC_7",
label: "7",
aliases: [],
},
{
code: "0x0025",
group: "basic",
key: "KC_8",
label: "8",
aliases: [],
},
{
code: "0x0026",
group: "basic",
key: "KC_9",
label: "9",
aliases: [],
},
{
code: "0x0027",
group: "basic",
key: "KC_0",
label: "0",
aliases: [],
},
{
code: "0x0028",
group: "basic",
key: "KC_ENTER",
label: "Enter",
aliases: ["KC_ENT"],
},
{
code: "0x0029",
group: "basic",
key: "KC_ESCAPE",
label: "Esc",
aliases: ["KC_ESC"],
},
{
code: "0x002A",
group: "basic",
key: "KC_BACKSPACE",
label: "Backspace",
aliases: ["KC_BSPC"],
},
{
code: "0x002B",
group: "basic",
key: "KC_TAB",
label: "Tab",
aliases: [],
},
{
code: "0x002C",
group: "basic",
key: "KC_SPACE",
label: "Spacebar",
aliases: ["KC_SPC"],
},
{
code: "0x002D",
group: "basic",
key: "KC_MINUS",
label: "-",
aliases: ["KC_MINS"],
},
{
code: "0x002E",
group: "basic",
key: "KC_EQUAL",
label: "=",
aliases: ["KC_EQL"],
},
{
code: "0x002F",
group: "basic",
key: "KC_LEFT_BRACKET",
label: "[",
aliases: ["KC_LBRC"],
},
{
code: "0x0030",
group: "basic",
key: "KC_RIGHT_BRACKET",
label: "]",
aliases: ["KC_RBRC"],
},
{
code: "0x0031",
group: "basic",
key: "KC_BACKSLASH",
label: "\\",
aliases: ["KC_BSLS"],
},
{
code: "0x0032",
group: "basic",
key: "KC_NONUS_HASH",
label: "#",
aliases: ["KC_NUHS"],
},
{
code: "0x0033",
group: "basic",
key: "KC_SEMICOLON",
label: ";",
aliases: ["KC_SCLN"],
},
{
code: "0x0034",
group: "basic",
key: "KC_QUOTE",
label: "'",
aliases: ["KC_QUOT"],
},
{
code: "0x0035",
group: "basic",
key: "KC_GRAVE",
label: "`",
aliases: ["KC_GRV"],
},
{
code: "0x0036",
group: "basic",
key: "KC_COMMA",
label: ",",
aliases: ["KC_COMM"],
},
{
code: "0x0037",
group: "basic",
key: "KC_DOT",
label: ".",
aliases: [],
},
{
code: "0x0038",
group: "basic",
key: "KC_SLASH",
label: "/",
aliases: ["KC_SLSH"],
},
{
code: "0x0039",
group: "basic",
key: "KC_CAPS_LOCK",
label: "Caps Lock",
aliases: ["KC_CAPS"],
},
{
code: "0x003A",
group: "basic",
key: "KC_F1",
label: "F1",
aliases: [],
},
{
code: "0x003B",
group: "basic",
key: "KC_F2",
label: "F2",
aliases: [],
},
{
code: "0x003C",
group: "basic",
key: "KC_F3",
label: "F3",
aliases: [],
},
{
code: "0x003D",
group: "basic",
key: "KC_F4",
label: "F4",
aliases: [],
},
{
code: "0x003E",
group: "basic",
key: "KC_F5",
label: "F5",
aliases: [],
},
{
code: "0x003F",
group: "basic",
key: "KC_F6",
label: "F6",
aliases: [],
},
{
code: "0x0040",
group: "basic",
key: "KC_F7",
label: "F7",
aliases: [],
},
{
code: "0x0041",
group: "basic",
key: "KC_F8",
label: "F8",
aliases: [],
},
{
code: "0x0042",
group: "basic",
key: "KC_F9",
label: "F9",
aliases: [],
},
{
code: "0x0043",
group: "basic",
key: "KC_F10",
label: "F10",
aliases: [],
},
{
code: "0x0044",
group: "basic",
key: "KC_F11",
label: "F11",
aliases: [],
},
{
code: "0x0045",
group: "basic",
key: "KC_F12",
label: "F12",
aliases: [],
},
{
code: "0x0046",
group: "basic",
key: "KC_PRINT_SCREEN",
label: "Print Screen",
aliases: ["KC_PSCR"],
},
{
code: "0x0047",
group: "basic",
key: "KC_SCROLL_LOCK",
label: "Scroll Lock",
aliases: ["KC_SCRL", "KC_BRMD"],
},
{
code: "0x0048",
group: "basic",
key: "KC_PAUSE",
label: "Pause",
aliases: ["KC_PAUS", "KC_BRK", "KC_BRMU"],
},
{
code: "0x0049",
group: "basic",
key: "KC_INSERT",
label: "Insert",
aliases: ["KC_INS"],
},
{
code: "0x004A",
group: "basic",
key: "KC_HOME",
label: "Home",
aliases: [],
},
{
code: "0x004B",
group: "basic",
key: "KC_PAGE_UP",
label: "Page Up",
aliases: ["KC_PGUP"],
},
{
code: "0x004C",
group: "basic",
key: "KC_DELETE",
label: "Delete",
aliases: ["KC_DEL"],
},
{
code: "0x004D",
group: "basic",
key: "KC_END",
label: "End",
aliases: [],
},
{
code: "0x004E",
group: "basic",
key: "KC_PAGE_DOWN",
label: "Page Down",
aliases: ["KC_PGDN"],
},
{
code: "0x004F",
group: "basic",
key: "KC_RIGHT",
label: "Right",
aliases: ["KC_RGHT"],
},
{
code: "0x0050",
group: "basic",
key: "KC_LEFT",
label: "Left",
aliases: [],
},
{
code: "0x0051",
group: "basic",
key: "KC_DOWN",
label: "Down",
aliases: [],
},
{
code: "0x0052",
group: "basic",
key: "KC_UP",
label: "Up",
aliases: [],
},
{
code: "0x0053",
group: "basic",
key: "KC_NUM_LOCK",
label: "Num Lock",
aliases: ["KC_NUM"],
},
{
code: "0x0054",
group: "basic",
key: "KC_KP_SLASH",
label: "/",
aliases: ["KC_PSLS"],
},
{
code: "0x0055",
group: "basic",
key: "KC_KP_ASTERISK",
label: "*",
aliases: ["KC_PAST"],
},
{
code: "0x0056",
group: "basic",
key: "KC_KP_MINUS",
label: "-",
aliases: ["KC_PMNS"],
},
{
code: "0x0057",
group: "basic",
key: "KC_KP_PLUS",
label: "+",
aliases: ["KC_PPLS"],
},
{
code: "0x0058",
group: "basic",
key: "KC_KP_ENTER",
label: "Enter",
aliases: ["KC_PENT"],
},
{
code: "0x0059",
group: "basic",
key: "KC_KP_1",
label: "1",
aliases: ["KC_P1"],
},
{
code: "0x005A",
group: "basic",
key: "KC_KP_2",
label: "2",
aliases: ["KC_P2"],
},
{
code: "0x005B",
group: "basic",
key: "KC_KP_3",
label: "3",
aliases: ["KC_P3"],
},
{
code: "0x005C",
group: "basic",
key: "KC_KP_4",
label: "4",
aliases: ["KC_P4"],
},
{
code: "0x005D",
group: "basic",
key: "KC_KP_5",
label: "5",
aliases: ["KC_P5"],
},
{
code: "0x005E",
group: "basic",
key: "KC_KP_6",
label: "6",
aliases: ["KC_P6"],
},
{
code: "0x005F",
group: "basic",
key: "KC_KP_7",
label: "7",
aliases: ["KC_P7"],
},
{
code: "0x0060",
group: "basic",
key: "KC_KP_8",
label: "8",
aliases: ["KC_P8"],
},
{
code: "0x0061",
group: "basic",
key: "KC_KP_9",
label: "9",
aliases: ["KC_P9"],
},
{
code: "0x0062",
group: "basic",
key: "KC_KP_0",
label: "0",
aliases: ["KC_P0"],
},
{
code: "0x0063",
group: "basic",
key: "KC_KP_DOT",
label: ".",
aliases: ["KC_PDOT"],
},
{
code: "0x0064",
group: "basic",
key: "KC_NONUS_BACKSLASH",
label: "\\",
aliases: ["KC_NUBS"],
},
{
code: "0x0065",
group: "basic",
key: "KC_APPLICATION",
label: "App",
aliases: ["KC_APP"],
},
{
code: "0x0066",
group: "basic",
key: "KC_KB_POWER",
label: "Power",
aliases: [],
},
{
code: "0x0067",
group: "basic",
key: "KC_KP_EQUAL",
label: "=",
aliases: ["KC_PEQL"],
},
{
code: "0x0068",
group: "basic",
key: "KC_F13",
label: "F13",
aliases: [],
},
{
code: "0x0069",
group: "basic",
key: "KC_F14",
label: "F14",
aliases: [],
},
{
code: "0x006A",
group: "basic",
key: "KC_F15",
label: "F15",
aliases: [],
},
{
code: "0x006B",
group: "basic",
key: "KC_F16",
label: "F16",
aliases: [],
},
{
code: "0x006C",
group: "basic",
key: "KC_F17",
label: "F17",
aliases: [],
},
{
code: "0x006D",
group: "basic",
key: "KC_F18",
label: "F18",
aliases: [],
},
{
code: "0x006E",
group: "basic",
key: "KC_F19",
label: "F19",
aliases: [],
},
{
code: "0x006F",
group: "basic",
key: "KC_F20",
label: "F20",
aliases: [],
},
{
code: "0x0070",
group: "basic",
key: "KC_F21",
label: "F21",
aliases: [],
},
{
code: "0x0071",
group: "basic",
key: "KC_F22",
label: "F22",
aliases: [],
},
{
code: "0x0072",
group: "basic",
key: "KC_F23",
label: "F23",
aliases: [],
},
{
code: "0x0073",
group: "basic",
key: "KC_F24",
label: "F24",
aliases: [],
},
{
code: "0x0074",
group: "basic",
key: "KC_EXECUTE",
label: "Execute",
aliases: ["KC_EXEC"],
},
{
code: "0x0075",
group: "basic",
key: "KC_HELP",
label: "Help",
aliases: [],
},
{
code: "0x0076",
group: "basic",
key: "KC_MENU",
label: "Menu",
aliases: [],
},
{
code: "0x0077",
group: "basic",
key: "KC_SELECT",
label: "Select",
aliases: ["KC_SLCT"],
},
{
code: "0x0078",
group: "basic",
key: "KC_STOP",
label: "Stop",
aliases: [],
},
{
code: "0x0079",
group: "basic",
key: "KC_AGAIN",
label: "Again",
aliases: ["KC_AGIN"],
},
{
code: "0x007A",
group: "basic",
key: "KC_UNDO",
label: "Undo",
aliases: [],
},
{
code: "0x007B",
group: "basic",
key: "KC_CUT",
label: "Cut",
aliases: [],
},
{
code: "0x007C",
group: "basic",
key: "KC_COPY",
label: "Copy",
aliases: [],
},
{
code: "0x007D",
group: "basic",
key: "KC_PASTE",
label: "Paste",
aliases: ["KC_PSTE"],
},
{
code: "0x007E",
group: "basic",
key: "KC_FIND",
label: "Find",
aliases: [],
},
{
code: "0x007F",
group: "basic",
key: "KC_KB_MUTE",
label: "Mute",
aliases: [],
},
{
code: "0x0080",
group: "basic",
key: "KC_KB_VOLUME_UP",
label: "Volume Up",
aliases: [],
},
{
code: "0x0081",
group: "basic",
key: "KC_KB_VOLUME_DOWN",
label: "Volume Down",
aliases: [],
},
{
code: "0x0082",
group: "basic",
key: "KC_LOCKING_CAPS_LOCK",
label: "Caps Lock",
aliases: ["KC_LCAP"],
},
{
code: "0x0083",
group: "basic",
key: "KC_LOCKING_NUM_LOCK",
label: "Num Lock",
aliases: ["KC_LNUM"],
},
{
code: "0x0084",
group: "basic",
key: "KC_LOCKING_SCROLL_LOCK",
label: "Scroll Lock",
aliases: ["KC_LSCR"],
},
{
code: "0x0085",
group: "basic",
key: "KC_KP_COMMA",
label: ",",
aliases: ["KC_PCMM"],
},
{
code: "0x0086",
group: "basic",
key: "KC_KP_EQUAL_AS400",
label: "=",
aliases: [],
},
{
code: "0x0087",
group: "basic",
key: "KC_INTERNATIONAL_1",
label: "INT 1",
aliases: ["KC_INT1"],
},
{
code: "0x0088",
group: "basic",
key: "KC_INTERNATIONAL_2",
label: "INT 2",
aliases: ["KC_INT2"],
},
{
code: "0x0089",
group: "basic",
key: "KC_INTERNATIONAL_3",
label: "INT 3",
aliases: ["KC_INT3"],
},
{
code: "0x008A",
group: "basic",
key: "KC_INTERNATIONAL_4",
label: "INT 4",
aliases: ["KC_INT4"],
},
{
code: "0x008B",
group: "basic",
key: "KC_INTERNATIONAL_5",
label: "INT 5",
aliases: ["KC_INT5"],
},
{
code: "0x008C",
group: "basic",
key: "KC_INTERNATIONAL_6",
label: "INT 6",
aliases: ["KC_INT6"],
},
{
code: "0x008D",
group: "basic",
key: "KC_INTERNATIONAL_7",
label: "INT 7",
aliases: ["KC_INT7"],
},
{
code: "0x008E",
group: "basic",
key: "KC_INTERNATIONAL_8",
label: "INT 8",
aliases: ["KC_INT8"],
},
{
code: "0x008F",
group: "basic",
key: "KC_INTERNATIONAL_9",
label: "INT 9",
aliases: ["KC_INT9"],
},
{
code: "0x0090",
group: "basic",
key: "KC_LANGUAGE_1",
label: "LANG 1",
aliases: ["KC_LNG1"],
},
{
code: "0x0091",
group: "basic",
key: "KC_LANGUAGE_2",
label: "LANG 2",
aliases: ["KC_LNG2"],
},
{
code: "0x0092",
group: "basic",
key: "KC_LANGUAGE_3",
label: "LANG 3",
aliases: ["KC_LNG3"],
},
{
code: "0x0093",
group: "basic",
key: "KC_LANGUAGE_4",
label: "LANG 4",
aliases: ["KC_LNG4"],
},
{
code: "0x0094",
group: "basic",
key: "KC_LANGUAGE_5",
label: "LANG 5",
aliases: ["KC_LNG5"],
},
{
code: "0x0095",
group: "basic",
key: "KC_LANGUAGE_6",
label: "LANG 6",
aliases: ["KC_LNG6"],
},
{
code: "0x0096",
group: "basic",
key: "KC_LANGUAGE_7",
label: "LANG 7",
aliases: ["KC_LNG7"],
},
{
code: "0x0097",
group: "basic",
key: "KC_LANGUAGE_8",
label: "LANG 8",
aliases: ["KC_LNG8"],
},
{
code: "0x0098",
group: "basic",
key: "KC_LANGUAGE_9",
label: "LANG 9",
aliases: ["KC_LNG9"],
},
{
code: "0x0099",
group: "basic",
key: "KC_ALTERNATE_ERASE",
label: "Alternate Erase",
aliases: ["KC_ERAS"],
},
{
code: "0x009A",
group: "basic",
key: "KC_SYSTEM_REQUEST",
label: "SysReq/Attention",
aliases: ["KC_SYRQ"],
},
{
code: "0x009B",
group: "basic",
key: "KC_CANCEL",
label: "Cancel",
aliases: ["KC_CNCL"],
},
{
code: "0x009C",
group: "basic",
key: "KC_CLEAR",
label: "Clear",
aliases: ["KC_CLR"],
},
{
code: "0x009D",
group: "basic",
key: "KC_PRIOR",
label: "Prior",
aliases: ["KC_PRIR"],
},
{
code: "0x009E",
group: "basic",
key: "KC_RETURN",
label: "Return",
aliases: ["KC_RETN"],
},
{
code: "0x009F",
group: "basic",
key: "KC_SEPARATOR",
label: "Separator",
aliases: ["KC_SEPR"],
},
{
code: "0x00A0",
group: "basic",
key: "KC_OUT",
label: "Out",
aliases: [],
},
{
code: "0x00A1",
group: "basic",
key: "KC_OPER",
label: "Oper",
aliases: [],
},
{
code: "0x00A2",
group: "basic",
key: "KC_CLEAR_AGAIN",
label: "Clear/Again",
aliases: ["KC_CLAG"],
},
{
code: "0x00A3",
group: "basic",
key: "KC_CRSEL",
label: "CrSel/Props",
aliases: ["KC_CRSL"],
},
{
code: "0x00A4",
group: "basic",
key: "KC_EXSEL",
label: "ExSel",
aliases: ["KC_EXSL"],
},
{
code: "0x00E0",
group: "modifiers",
key: "KC_LEFT_CTRL",
label: "Left Control",
aliases: ["KC_LCTL"],
},
{
code: "0x00E1",
group: "modifiers",
key: "KC_LEFT_SHIFT",
label: "Left Shift",
aliases: ["KC_LSFT"],
},
{
code: "0x00E2",
group: "modifiers",
key: "KC_LEFT_ALT",
label: "Left Alt",
aliases: ["KC_LALT", "KC_LOPT"],
},
{
code: "0x00E3",
group: "modifiers",
key: "KC_LEFT_GUI",
label: "Left GUI",
aliases: ["KC_LGUI", "KC_LCMD", "KC_LWIN"],
},
{
code: "0x00E4",
group: "modifiers",
key: "KC_RIGHT_CTRL",
label: "Right Control",
aliases: ["KC_RCTL"],
},
{
code: "0x00E5",
group: "modifiers",
key: "KC_RIGHT_SHIFT",
label: "Right Shift",
aliases: ["KC_RSFT"],
},
{
code: "0x00E6",
group: "modifiers",
key: "KC_RIGHT_ALT",
label: "Right Alt",
aliases: ["KC_RALT", "KC_ROPT", "KC_ALGR"],
},
{
code: "0x00E7",
group: "modifiers",
key: "KC_RIGHT_GUI",
label: "Right GUI",
aliases: ["KC_RGUI", "KC_RCMD", "KC_RWIN"],
},
];