Skip to content

Instantly share code, notes, and snippets.

@Leonetienne
Last active September 18, 2021 13:04
Show Gist options
  • Save Leonetienne/9a6ff5d54701e2f32c4f66ba12fe382b to your computer and use it in GitHub Desktop.
Save Leonetienne/9a6ff5d54701e2f32c4f66ba12fe382b to your computer and use it in GitHub Desktop.
Keyboard key coordinates
# Keyboard key coordinates in mm relative to topleft
# name is a short key description (mostly whats printed on it, if possible)
# vc is the virtual key code (virtual code). in hex. deal with it.
# x axis is left -> right
# y axis is top -> bottom
# w is key width
# h is key height
# Indexed by microsofts visual key codes,
# Keyboard measured is a razer blackwidow, excluding macro keys. Exact model: rz03 0122.
# Key names are QUERTZ german.
# Yes, i put this fucker together by hand.
[
{
"vc": 0x1B,
"name": "Escape",
"x": 0,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x70,
"name": "F1",
"x": 49,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x71,
"name": "F2",
"x": 68,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x72,
"name": "F3",
"x": 87,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x73,
"name": "F4",
"x": 106,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x74,
"name": "F5",
"x": 129,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x75,
"name": "F6",
"x": 148,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x76,
"name": "F7",
"x": 167,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x77,
"name": "F8",
"x": 184,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x78,
"name": "F9",
"x": 209,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x79,
"name": "F10",
"x": 228,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x7A,
"name": "F11",
"x": 247,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x7B,
"name": "F12",
"x": 266,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x2C,
"name": "Print",
"x": 290,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x91,
"name": "Roll",
"x": 309,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0x13,
"name": "Pause",
"x": 328,
"y": 0,
"w": 16,
"h": 16
},
{
"vc": 0xDC,
"name": "^",
"x": 0,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x31,
"name": "1",
"x": 19,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x32,
"name": "2",
"x": 38,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x33,
"name": "3",
"x": 57,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x34,
"name": "4",
"x": 76,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x35,
"name": "5",
"x": 95,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x36,
"name": "6",
"x": 114,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x37,
"name": "7",
"x": 133,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x38,
"name": "8",
"x": 152,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x39,
"name": "9",
"x": 171,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x30,
"name": "0",
"x": 190,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0xDB,
"name": "ß",
"x": 209,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0xDD,
"name": "´",
"x": 228,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x8,
"name": "Backspace",
"x": 247,
"y": 25,
"w": 35,
"h": 16
},
{
"vc": 0x2D,
"name": "Paste",
"x": 290,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x24,
"name": "Pos1",
"x": 309,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x21,
"name": "Page up",
"x": 328,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x2E,
"name": "Delete",
"x": 290,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x23,
"name": "End",
"x": 309,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x22,
"name": "Page down",
"x": 328,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x90,
"name": "Num lock",
"x": 350,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x6f,
"name": "/",
"x": 369,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x6a,
"name": "*",
"x": 388,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x6d,
"name": "-",
"x": 407,
"y": 25,
"w": 16,
"h": 16
},
{
"vc": 0x67,
"name": "Num 7",
"x": 350,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x68,
"name": "Num 8",
"x": 369,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x69,
"name": "Num 9",
"x": 388,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x6b,
"name": "+",
"x": 407,
"y": 44,
"w": 16,
"h": 35
},
{
"vc": 0x64,
"name": "Num 4",
"x": 350,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0x65,
"name": "Num 5",
"x": 369,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0x66,
"name": "Num 6",
"x": 388,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0x61,
"name": "Num 41",
"x": 350,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0x62,
"name": "Num 2",
"x": 369,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0x63,
"name": "Num 3",
"x": 388,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0xD,
"name": "Return",
"x": 407,
"y": 82,
"w": 16,
"h": 35
},
{
"vc": 0x60,
"name": "Num 0",
"x": 350,
"y": 101,
"w": 35,
"h": 16
},
{
"vc": 0xBC,
"name": ",",
"x": 388,
"y": 101,
"w": 16,
"h": 16
},
{
"vc": 0x9,
"name": "Tab",
"x": 0,
"y": 44,
"w": 27,
"h": 16
},
{
"vc": 0x51,
"name": "Q",
"x": 30,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x57,
"name": "W",
"x": 49,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x45,
"name": "E",
"x": 68,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x52,
"name": "R",
"x": 87,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x54,
"name": "T",
"x": 106,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x5A,
"name": "Z",
"x": 125,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x55,
"name": "U",
"x": 144,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x49,
"name": "I",
"x": 163,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x4F,
"name": "O",
"x": 182,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0x50,
"name": "P",
"x": 201,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0xBA,
"name": "Ü",
"x": 220,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0xBB,
"name": "+",
"x": 239,
"y": 44,
"w": 16,
"h": 16
},
{
"vc": 0xD,
"name": "Return",
"x": 262,
"y": 44,
"w": 20,
"h": 35
},
{
"vc": 0x14,
"name": "Capslock",
"x": 0,
"y": 63,
"w": 31,
"h": 16
},
{
"vc": 0x41,
"name": "A",
"x": 34,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0x53,
"name": "S",
"x": 53,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0x44,
"name": "D",
"x": 72,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0x46,
"name": "F",
"x": 91,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0x47,
"name": "G",
"x": 110,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0x48,
"name": "H",
"x": 129,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0x4A,
"name": "J",
"x": 148,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0x4B,
"name": "K",
"x": 167,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0x4C,
"name": "L",
"x": 186,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0xC0,
"name": "Ö",
"x": 205,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0xDE,
"name": "Ä",
"x": 224,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0xBF,
"name": "#",
"x": 243,
"y": 63,
"w": 16,
"h": 16
},
{
"vc": 0xA0,
"name": "LShift",
"x": 0,
"y": 82,
"w": 24,
"h": 16
},
{
"vc": 0xE2,
"name": "<",
"x": 27,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0x59,
"name": "Y",
"x": 46,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0x58,
"name": "X",
"x": 65,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0x43,
"name": "C",
"x": 84,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0x56,
"name": "V",
"x": 103,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0x42,
"name": "B",
"x": 122,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0x4E,
"name": "N",
"x": 141,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0x4D,
"name": "M",
"x": 160,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0xBC,
"name": ",",
"x": 179,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0xBE,
"name": ".",
"x": 198,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0xBD,
"name": "-",
"x": 217,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0xA1,
"name": "RShift",
"x": 236,
"y": 82,
"w": 46,
"h": 16
},
{
"vc": 0xA2,
"name": "LCtrl",
"x": 0,
"y": 101,
"w": 26,
"h": 16
},
{
"vc": 0x5B,
"name": "Win",
"x": 29,
"y": 101,
"w": 16,
"h": 16
},
{
"vc": 0xA4,
"name": "LMenu",
"x": 48,
"y": 101,
"w": 26,
"h": 16
},
{
"vc": 0x20,
"name": "Space",
"x": 77,
"y": 101,
"w": 109,
"h": 16
},
{
"vc": 0xA5,
"name": "RMenu",
"x": 189,
"y": 101,
"w": 26,
"h": 16
},
{
"vc": 0x5D,
"name": "Apps",
"x": 237,
"y": 101,
"w": 16,
"h": 16
},
{
"vc": 0xA3,
"name": "RCtrl",
"x": 256,
"y": 101,
"w": 26,
"h": 16
},
{
"vc": 0x26,
"name": "Up",
"x": 309,
"y": 82,
"w": 16,
"h": 16
},
{
"vc": 0x28,
"name": "Down",
"x": 309,
"y": 101,
"w": 16,
"h": 16
},
{
"vc": 0x25,
"name": "Left",
"x": 290,
"y": 101,
"w": 16,
"h": 16
},
{
"vc": 0x27,
"name": "Right",
"x": 328,
"y": 101,
"w": 16,
"h": 16
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment