diff --git a/99-openlinkhub.rules b/99-openlinkhub.rules index 769c278..1732f79 100644 --- a/99-openlinkhub.rules +++ b/99-openlinkhub.rules @@ -72,4 +72,6 @@ SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="1bb2", MODE="0660 SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="2b01", MODE="0660", OWNER="openlinkhub" SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="2b02", MODE="0660", OWNER="openlinkhub" SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="2b14", MODE="0660", OWNER="openlinkhub" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="1bb9", MODE="0660", OWNER="openlinkhub" +SUBSYSTEMS=="usb", ATTRS{idVendor}=="1b1c", ATTRS{idProduct}=="1b73", MODE="0660", OWNER="openlinkhub" KERNEL=="uinput", MODE="0660", GROUP="input", OPTIONS+="static_node=uinput", OWNER="openlinkhub" \ No newline at end of file diff --git a/README.md b/README.md index c3fc45c..74e2afb 100644 --- a/README.md +++ b/README.md @@ -54,6 +54,7 @@ Open source Linux interface for iCUE LINK Hub and other Corsair AIOs, Hubs. | K70 RGB MK.2 | `1b55`
`1b49`
`1b6b` | USB | | K70 CORE TKL | `2b01` | USB | | K70 CORE TKL WIRELESS | `2b02` | USB | +| K70 RGB TKL CHAMPION SERIES | `1bb9`
`1b73` | USB | | KATAR PRO | `1b93` | DPI Control
RGB Control
Key Assignments | | KATAR PRO XT | `1bac` | DPI Control
RGB Control | | KATAR PRO WIRELESS | `1b94` | DPI Control
Key Assignments | diff --git a/database/keyboard/k100-eu.json b/database/keyboard/k100-eu.json deleted file mode 100644 index d3bf244..0000000 --- a/database/keyboard/k100-eu.json +++ /dev/null @@ -1,3163 +0,0 @@ -{ - "key": "k100-default", - "device": "K100 RGB", - "layout": "EU", - "rows": 6, - "row": { - "0": { - "keys": { - "1": { - "keyName": "", - "width": 81, - "height": 20, - "left": 0, - "top": 0, - "packetIndex": [ - 414 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "2": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 417 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "3": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 420 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "4": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 423 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "5": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 426 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "6": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 429 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "7": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 432 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "8": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 435 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "9": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 438 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "10": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 441 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "11": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 444 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "12": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 447 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "13": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 450 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "14": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 453 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "15": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 456 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "16": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 459 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "17": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 462 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "18": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 465 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "19": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 468 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "20": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 471 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "21": { - "keyName": "", - "width": 78, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 474 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "22": { - "keyName": "", - "width": 81, - "height": 20, - "left": 10, - "top": 0, - "packetIndex": [ - 477 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - } - } - }, - "1": { - "keys": { - "23": { - "keyName": "", - "width": 10, - "height": 40, - "left": 0, - "top": 20, - "packetIndex": [ - 480 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "24": { - "keyName": "icon-user.svg", - "width": 65, - "height": 40, - "left": 40, - "top": 20, - "packetIndex": [ - 384 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": true - }, - "25": { - "keyName": "icon-brightness.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 20, - "packetIndex": [ - 546,549,552,555,558,561,564,567,411 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": true - }, - "26": { - "keyName": "icon-lock.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 20, - "packetIndex": [ - 342 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": true - }, - "27": { - "keyName": "LOGO", - "width": 404, - "height": 40, - "left": 450, - "top": 20, - "packetIndex": [ - 570, - 573, - 576 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "28": { - "keyName": "icon-mute.svg", - "width": 65, - "height": 40, - "left": 441, - "top": 20, - "packetIndex": [ - 306 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": true - }, - "29": { - "keyName": "", - "width": 20, - "height": 40, - "left": 255, - "top": 20, - "packetIndex": [ - 513 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - } - } - }, - "2": { - "keys": { - "30": { - "keyName": "", - "width": 10, - "height": 40, - "left": 0, - "top": 10, - "packetIndex": [ - 483 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "31": { - "keyName": "G1", - "width": 65, - "height": 70, - "left": 15, - "top": 20, - "packetIndex": [ - 393 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "32": { - "keyName": "ESC", - "width": 65, - "height": 70, - "left": 15, - "top": 20, - "packetIndex": [ - 123 - ], - "color": { - "red": 0, - "green": 255, - "blue": 0, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "33": { - "keyName": "F1", - "width": 65, - "height": 70, - "left": 95, - "top": 20, - "packetIndex": [ - 174 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "34": { - "keyName": "F2", - "width": 65, - "height": 70, - "left": 15, - "top": 20, - "packetIndex": [ - 177 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "35": { - "keyName": "F3", - "width": 65, - "height": 70, - "left": 15, - "top": 20, - "packetIndex": [ - 180 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "36": { - "keyName": "F4", - "width": 65, - "height": 70, - "left": 15, - "top": 20, - "packetIndex": [ - 183 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "37": { - "keyName": "F5", - "width": 65, - "height": 70, - "left": 55, - "top": 20, - "packetIndex": [ - 186 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "38": { - "keyName": "F6", - "width": 65, - "height": 70, - "left": 15, - "top": 20, - "packetIndex": [ - 189 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "39": { - "keyName": "F7", - "width": 65, - "height": 70, - "left": 15, - "top": 20, - "packetIndex": [ - 192 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "40": { - "keyName": "F8", - "width": 65, - "height": 70, - "left": 15, - "top": 20, - "packetIndex": [ - 195 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "41": { - "keyName": "F9", - "width": 65, - "height": 70, - "left": 60, - "top": 20, - "packetIndex": [ - 198 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "42": { - "keyName": "F10", - "width": 65, - "height": 70, - "left": 15, - "top": 20, - "packetIndex": [ - 201 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "43": { - "keyName": "F11", - "width": 65, - "height": 70, - "left": 15, - "top": 20, - "packetIndex": [ - 204 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "44": { - "keyName": "F12", - "width": 65, - "height": 70, - "left": 15, - "top": 20, - "packetIndex": [ - 207 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "45": { - "keyName": "PrtSc", - "width": 65, - "height": 70, - "left": 25, - "top": 20, - "packetIndex": [ - 210 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "46": { - "keyName": "ScrLk", - "width": 65, - "height": 70, - "left": 15, - "top": 20, - "packetIndex": [ - 213 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "47": { - "keyName": "Pause", - "width": 65, - "height": 70, - "left": 15, - "top": 20, - "packetIndex": [ - 216 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "48": { - "keyName": "icon-stop.svg", - "width": 65, - "height": 40, - "left": 25, - "top": 20, - "packetIndex": [ - 369 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": true - }, - "49": { - "keyName": "icon-backward.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 20, - "packetIndex": [ - 378 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": true - }, - "50": { - "keyName": "icon-pause.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 20, - "packetIndex": [ - 372 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": true - }, - "51": { - "keyName": "icon-forward.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 20, - "packetIndex": [ - 375 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": true - }, - "52": { - "keyName": "", - "width": 10, - "height": 40, - "left": 15, - "top": 10, - "packetIndex": [ - 516 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - } - } - }, - "3": { - "keys": { - "53": { - "keyName": "", - "width": 10, - "height": 40, - "left": 0, - "top": -30, - "packetIndex": [ - 486 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "54": { - "keyName": "G2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 396 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "55": { - "keyName": "` ~", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 159 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "56": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 90 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "57": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 93 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "58": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 96 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "59": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 99 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "60": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 102 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "61": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 105 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "62": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 108 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "63": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 111 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "64": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 114 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "65": { - "keyName": "0", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 117 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "66": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 135 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "67": { - "keyName": "=", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 138 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "68": { - "keyName": "\u003c---", - "width": 150, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 126 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "69": { - "keyName": "Ins", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [ - 219 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "70": { - "keyName": "Home", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 222 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "71": { - "keyName": "PgUp", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 225 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "72": { - "keyName": "Num", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [ - 249 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "73": { - "keyName": "/", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 252 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "74": { - "keyName": "*", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 255 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "75": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 258 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "76": { - "keyName": "", - "width": 10, - "height": 40, - "left": 15, - "top": -30, - "packetIndex": [ - 519 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - } - } - }, - "4": { - "keys": { - "77": { - "keyName": "", - "width": 10, - "height": 40, - "left": 0, - "top": -65, - "packetIndex": [ - 489 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "78": { - "keyName": "G3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 399 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "79": { - "keyName": "Tab", - "width": 108, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 129 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "80": { - "keyName": "Q", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 60 - ], - "color": { - "red": 255, - "green": 0, - "blue": 0, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "81": { - "keyName": "W", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 78 - ], - "color": { - "red": 255, - "green": 0, - "blue": 0, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "82": { - "keyName": "E", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 24 - ], - "color": { - "red": 255, - "green": 0, - "blue": 0, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "83": { - "keyName": "R", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 63 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "84": { - "keyName": "T", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 69 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "85": { - "keyName": "Z", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 84 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "86": { - "keyName": "U", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 72 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "87": { - "keyName": "I", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 36 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "88": { - "keyName": "O", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 54 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "89": { - "keyName": "P", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 57 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "90": { - "keyName": "[ {", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 141 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "91": { - "keyName": "] }", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 144 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "92": { - "keyName": "\\ |", - "width": 107, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 147 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "93": { - "keyName": "Del", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [ - 228 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "94": { - "keyName": "End", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 231 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "95": { - "keyName": "PgDn", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 234 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "96": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [ - 285 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "97": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 288 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "98": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 291 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "99": { - "keyName": "+", - "width": 65, - "height": 155, - "left": 15, - "top": 15, - "packetIndex": [ - 261 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "100": { - "keyName": "", - "width": 10, - "height": 40, - "left": 15, - "top": -65, - "packetIndex": [ - 522 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - } - } - }, - "5": { - "keys": { - "101": { - "keyName": "", - "width": 10, - "height": 40, - "left": 0, - "top": -100, - "packetIndex": [ - 492 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "102": { - "keyName": "G4", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 402 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "103": { - "keyName": "CAPS", - "width": 131, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 171 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "104": { - "keyName": "A", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 12 - ], - "color": { - "red": 255, - "green": 0, - "blue": 0, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "105": { - "keyName": "S", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 66 - ], - "color": { - "red": 255, - "green": 0, - "blue": 0, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "106": { - "keyName": "D", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 21 - ], - "color": { - "red": 255, - "green": 0, - "blue": 0, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "107": { - "keyName": "F", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 27 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "108": { - "keyName": "G", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 30 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "109": { - "keyName": "H", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 33 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "110": { - "keyName": "J", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 39 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "111": { - "keyName": "K", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 42 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "112": { - "keyName": "L", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 45 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "113": { - "keyName": "; :", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 153 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "114": { - "keyName": "' ''", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 156 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "115": { - "keyName": "Enter", - "width": 164, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 120 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "116": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 275, - "top": 15, - "packetIndex": [ - 276 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "117": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 279 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "118": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 282 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "119": { - "keyName": "", - "width": 10, - "height": 40, - "left": 95, - "top": -100, - "packetIndex": [ - 525 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - } - } - }, - "6": { - "keys": { - "120": { - "keyName": "", - "width": 10, - "height": 40, - "left": 0, - "top": -135, - "packetIndex": [ - 495 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "121": { - "keyName": "G5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 405 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "122": { - "keyName": "Shift", - "width": 170, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 318 - ], - "color": { - "red": 255, - "green": 255, - "blue": 0, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "123": { - "keyName": "Y", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 87 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "124": { - "keyName": "X", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 81 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "125": { - "keyName": "C", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 18 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "126": { - "keyName": "V", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 75 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "127": { - "keyName": "B", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 15 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "128": { - "keyName": "N", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 51 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "129": { - "keyName": "M", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 48 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "130": { - "keyName": ", \u003c", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 162 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "131": { - "keyName": ". \u003e", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 165 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "132": { - "keyName": "/ ?", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 168 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "133": { - "keyName": "Shift", - "width": 205, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 330 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "134": { - "keyName": "↑", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "packetIndex": [ - 246 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "135": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "packetIndex": [ - 267 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "136": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 270 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "137": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 273 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "138": { - "keyName": "Enter", - "width": 65, - "height": 155, - "left": 15, - "top": 15, - "packetIndex": [ - 264 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "139": { - "keyName": "", - "width": 10, - "height": 40, - "left": 15, - "top": -135, - "packetIndex": [ - 528 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - } - } - }, - "7": { - "keys": { - "140": { - "keyName": "", - "width": 10, - "height": 40, - "left": 0, - "top": -170, - "packetIndex": [ - 498 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "141": { - "keyName": "G6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 408 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "142": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 315 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "143": { - "keyName": "⊞", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 324 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "144": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 321 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "145": { - "keyName": "----------", - "width": 455, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 132 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "146": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 333 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "147": { - "keyName": "Fn", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 366 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "148": { - "keyName": "RC", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 303 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "149": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 327 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "150": { - "keyName": "←", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [ - 240 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "151": { - "keyName": "↓", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 243 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "152": { - "keyName": "→", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 237 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "153": { - "keyName": "0", - "width": 145, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [ - 294 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "154": { - "keyName": ".", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [ - 297 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "155": { - "keyName": "", - "width": 10, - "height": 40, - "left": 95, - "top": -170, - "packetIndex": [ - 531 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - } - } - }, - "8": { - "keys": { - "156": { - "keyName": "", - "width": 10, - "height": 40, - "left": 0, - "top": -205, - "packetIndex": [ - 501 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "157": { - "keyName": "", - "width": 10, - "height": 40, - "left": 1880, - "top": -205, - "packetIndex": [ - 534 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - } - } - }, - "9": { - "keys": { - "158": { - "keyName": "", - "width": 10, - "height": 40, - "left": 0, - "top": -155, - "packetIndex": [ - 504 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "159": { - "keyName": "", - "width": 10, - "height": 40, - "left": 1880, - "top": -155, - "packetIndex": [ - 537 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - } - } - }, - "10": { - "keys": { - "160": { - "keyName": "", - "width": 10, - "height": 40, - "left": 0, - "top": -105, - "packetIndex": [ - 507 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "161": { - "keyName": "", - "width": 10, - "height": 40, - "left": 1880, - "top": -105, - "packetIndex": [ - 540 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - } - } - }, - "11": { - "keys": { - "162": { - "keyName": "", - "width": 10, - "height": 40, - "left": 0, - "top": -55, - "packetIndex": [ - 510 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - }, - "163": { - "keyName": "", - "width": 10, - "height": 40, - "left": 1880, - "top": -55, - "packetIndex": [ - 543 - ], - "color": { - "red": 0, - "green": 255, - "blue": 255, - "brightness": 0, - "Hex": "" - }, - "zone": 0, - "svg": false - } - } - } - }, - "zones": null, - "color": { - "red": 0, - "green": 0, - "blue": 0, - "brightness": 0, - "Hex": "" - } -} \ No newline at end of file diff --git a/database/keyboard/k100.json b/database/keyboard/k100.json index 5457def..34928b4 100644 --- a/database/keyboard/k100.json +++ b/database/keyboard/k100.json @@ -1,4 +1,7 @@ { + "version": 1, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k100-default", "device": "K100 RGB", "layout": "US", diff --git a/database/keyboard/k100air-de.json b/database/keyboard/k100air-de.json index c2412f0..28f945b 100644 --- a/database/keyboard/k100air-de.json +++ b/database/keyboard/k100air-de.json @@ -1,5 +1,7 @@ { - "version": 1, + "version": 2, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k100air-default", "device": "K100 AIR RGB", "layout": "DE", diff --git a/database/keyboard/k100air-eu.json b/database/keyboard/k100air-eu.json deleted file mode 100644 index 7a045f5..0000000 --- a/database/keyboard/k100air-eu.json +++ /dev/null @@ -1,1584 +0,0 @@ -{ - "version": 1, - "key": "k100air-default", - "device": "K100 AIR RGB", - "layout": "EU", - "rows": 6, - "row": { - "0": { - "keys": { - "1": { - "keyName": "icon-user.svg", - "width": 65, - "height": 40, - "left": 0, - "top": 0, - "packetIndex": [384], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true, - "spacing": [1,1] - }, - "2": { - "keyName": "icon-brightness.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 0, - "packetIndex": [339], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "3": { - "keyName": "icon-lock.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 0, - "packetIndex": [342], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "4": { - "keyName": "LOGO", - "width": 404, - "height": 40, - "left": 400, - "top": 0, - "packetIndex": [405,408], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1,1,1], - "css": "keyboard-key wide8" - }, - "5": { - "keyName": "icon-backward.svg", - "width": 65, - "height": 40, - "left": 185, - "top": 0, - "packetIndex": [378], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true, - "spacing": [1] - }, - "6": { - "keyName": "icon-pause.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 0, - "packetIndex": [372], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "7": { - "keyName": "icon-forward.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 0, - "packetIndex": [375], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "8": { - "keyName": "icon-mute.svg", - "width": 65, - "height": 40, - "left": 25, - "top": 0, - "packetIndex": [306], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true, - "spacing": [1] - } - } - }, - "1": { - "keys": { - "9": { - "keyName": "ESC", - "width": 65, - "height": 70, - "left": 0, - "top": 50, - "packetIndex": [123], - "color": { - "red": 0, - "green": 255, - "blue": 0 - } - }, - "10": { - "keyName": "F1", - "width": 65, - "height": 70, - "left": 95, - "top": 50, - "packetIndex": [174], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "11": { - "keyName": "F2", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [177], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "12": { - "keyName": "F3", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [180], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "13": { - "keyName": "F4", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [183], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "14": { - "keyName": "F5", - "width": 65, - "height": 70, - "left": 55, - "top": 50, - "packetIndex": [186], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "15": { - "keyName": "F6", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [189], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "16": { - "keyName": "F7", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [192], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "17": { - "keyName": "F8", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [195], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "18": { - "keyName": "F9", - "width": 65, - "height": 70, - "left": 60, - "top": 50, - "packetIndex": [198], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "19": { - "keyName": "F10", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [201], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "20": { - "keyName": "F11", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [204], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "21": { - "keyName": "F12", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [207], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "22": { - "keyName": "PrtSc", - "width": 65, - "height": 70, - "left": 25, - "top": 50, - "packetIndex": [210], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "23": { - "keyName": "ScrLk", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [213], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "24": { - "keyName": "Pause", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [216], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "25": { - "keyName": "G1", - "width": 65, - "height": 70, - "left": 25, - "top": 50, - "packetIndex": [393], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "26": { - "keyName": "G2", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [396], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "27": { - "keyName": "G3", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [399], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "28": { - "keyName": "G4", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [402], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "2": { - "keys": { - "29": { - "keyName": "` ~", - "width": 65, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [159], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "30": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [90], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "31": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [93], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "32": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [96], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "33": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [99], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "34": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [102], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "35": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [105], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "36": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [108], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "37": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [111], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "38": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [114], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "39": { - "keyName": "0", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [117], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "40": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [135], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "41": { - "keyName": "=", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [138], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "42": { - "keyName": "<---", - "width": 150, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [126], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide3" - }, - "43": { - "keyName": "Ins", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [219], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "44": { - "keyName": "Home", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [222], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "45": { - "keyName": "PgUp", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [225], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "46": { - "keyName": "Num", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [249], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "47": { - "keyName": "/", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [252], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "48": { - "keyName": "*", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [255], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "49": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [258], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "3": { - "keys": { - "50": { - "keyName": "Tab", - "width": 108, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [129], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide" - }, - "51": { - "keyName": "Q", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [60], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "52": { - "keyName": "W", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [78], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "53": { - "keyName": "E", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [24], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "54": { - "keyName": "R", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [63], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "55": { - "keyName": "T", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [69], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "56": { - "keyName": "Z", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [84], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "57": { - "keyName": "U", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [72], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "58": { - "keyName": "I", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [36], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "59": { - "keyName": "O", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [54], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "60": { - "keyName": "P", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [57], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "61": { - "keyName": "[ {", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [141], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "62": { - "keyName": "] }", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [144], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "63": { - "keyName": "\\ |", - "width": 107, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [147], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide" - }, - "64": { - "keyName": "Del", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [228], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "65": { - "keyName": "End", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [231], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "66": { - "keyName": "PgDn", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [234], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "67": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [285], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "68": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [288], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "69": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [291], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "70": { - "keyName": "+", - "width": 65, - "height": 155, - "left": 15, - "top": 15, - "packetIndex": [261], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key-125" - } - } - }, - "4": { - "keys": { - "71": { - "keyName": "CAPS", - "width": 131, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [171], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide" - }, - "72": { - "keyName": "A", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [12], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "73": { - "keyName": "S", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [66], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "74": { - "keyName": "D", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [21], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "75": { - "keyName": "F", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [27], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "76": { - "keyName": "G", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [30], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "77": { - "keyName": "H", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [33], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "78": { - "keyName": "J", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [39], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "79": { - "keyName": "K", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [42], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "80": { - "keyName": "L", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [45], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "81": { - "keyName": "; :", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [153], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "82": { - "keyName": "' ''", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [156], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "83": { - "keyName": "Enter", - "width": 164, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [120], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide3" - }, - "84": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 275, - "top": 15, - "packetIndex": [276], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1,1,1,1,1] - }, - "85": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [279], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "86": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [282], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "5": { - "keys": { - "87": { - "keyName": "Shift", - "width": 170, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [318], - "color": { - "red": 255, - "green": 255, - "blue": 0 - }, - "css": "keyboard-key wide3" - }, - "88": { - "keyName": "Y", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [87], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "89": { - "keyName": "X", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [81], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "90": { - "keyName": "C", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [18], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "91": { - "keyName": "V", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [75], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "92": { - "keyName": "B", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [15], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "93": { - "keyName": "N", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [51], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "94": { - "keyName": "M", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [48], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "95": { - "keyName": ", <", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [162], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "96": { - "keyName": ". >", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [165], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "97": { - "keyName": "/ ?", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [168], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "98": { - "keyName": "Shift", - "width": 205, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [330], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide3" - }, - "99": { - "keyName": "↑", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "packetIndex": [246], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1,1] - }, - "100": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "packetIndex": [267], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1,1] - }, - "101": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [270], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "102": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [273], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "103": { - "keyName": "Enter", - "width": 65, - "height": 155, - "left": 15, - "top": 15, - "packetIndex": [264], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key-125" - } - } - }, - "6": { - "keys": { - "104": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [315], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide" - }, - "105": { - "keyName": "Win", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [324], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "106": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [321], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide" - }, - "107": { - "keyName": "----------", - "width": 455, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [132], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide7" - }, - "108": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [333], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "109": { - "keyName": "Fn", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [366], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "110": { - "keyName": "Menu", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [303], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "111": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [327], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "112": { - "keyName": "←", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [240], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "113": { - "keyName": "↓", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [243], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "114": { - "keyName": "→", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [237], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "115": { - "keyName": "0", - "width": 145, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [294], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1], - "css": "keyboard-key wide" - }, - "116": { - "keyName": ".", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [297], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - } - } -} \ No newline at end of file diff --git a/database/keyboard/k100air.json b/database/keyboard/k100air.json index 95fd654..d4bc56e 100644 --- a/database/keyboard/k100air.json +++ b/database/keyboard/k100air.json @@ -1,5 +1,7 @@ { - "version": 1, + "version": 2, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k100air-default", "device": "K100 AIR RGB", "layout": "US", diff --git a/database/keyboard/k100airW-de.json b/database/keyboard/k100airW-de.json index 6eaafd9..a2a7107 100644 --- a/database/keyboard/k100airW-de.json +++ b/database/keyboard/k100airW-de.json @@ -1,5 +1,7 @@ { - "version": 1, + "version": 2, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k100airW-default", "device": "K100 AIR RGB", "layout": "DE", diff --git a/database/keyboard/k100airW-eu.json b/database/keyboard/k100airW-eu.json deleted file mode 100644 index e31a557..0000000 --- a/database/keyboard/k100airW-eu.json +++ /dev/null @@ -1,1589 +0,0 @@ -{ - "version": 1, - "key": "k100airW-default", - "device": "K100 AIR RGB", - "layout": "EU", - "rows": 6, - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "row": { - "0": { - "keys": { - "1": { - "keyName": "icon-user.svg", - "width": 65, - "height": 40, - "left": 0, - "top": 0, - "packetIndex": [384], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true, - "spacing": [1,1] - }, - "2": { - "keyName": "icon-brightness.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 0, - "packetIndex": [339], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "3": { - "keyName": "icon-lock.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 0, - "packetIndex": [342], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "4": { - "keyName": "LOGO", - "width": 404, - "height": 40, - "left": 400, - "top": 0, - "packetIndex": [405,408], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1,1,1], - "css": "keyboard-key wide8" - }, - "5": { - "keyName": "icon-backward.svg", - "width": 65, - "height": 40, - "left": 185, - "top": 0, - "packetIndex": [378], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true, - "spacing": [1] - }, - "6": { - "keyName": "icon-pause.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 0, - "packetIndex": [372], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "7": { - "keyName": "icon-forward.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 0, - "packetIndex": [375], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "8": { - "keyName": "icon-mute.svg", - "width": 65, - "height": 40, - "left": 25, - "top": 0, - "packetIndex": [306], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true, - "spacing": [1] - } - } - }, - "1": { - "keys": { - "9": { - "keyName": "ESC", - "width": 65, - "height": 70, - "left": 0, - "top": 50, - "packetIndex": [123], - "color": { - "red": 0, - "green": 255, - "blue": 0 - } - }, - "10": { - "keyName": "F1", - "width": 65, - "height": 70, - "left": 95, - "top": 50, - "packetIndex": [174], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "11": { - "keyName": "F2", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [177], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "12": { - "keyName": "F3", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [180], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "13": { - "keyName": "F4", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [183], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "14": { - "keyName": "F5", - "width": 65, - "height": 70, - "left": 55, - "top": 50, - "packetIndex": [186], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "15": { - "keyName": "F6", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [189], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "16": { - "keyName": "F7", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [192], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "17": { - "keyName": "F8", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [195], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "18": { - "keyName": "F9", - "width": 65, - "height": 70, - "left": 60, - "top": 50, - "packetIndex": [198], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "19": { - "keyName": "F10", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [201], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "20": { - "keyName": "F11", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [204], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "21": { - "keyName": "F12", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [207], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "22": { - "keyName": "PrtSc", - "width": 65, - "height": 70, - "left": 25, - "top": 50, - "packetIndex": [210], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "23": { - "keyName": "ScrLk", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [213], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "24": { - "keyName": "Pause", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [216], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "25": { - "keyName": "G1", - "width": 65, - "height": 70, - "left": 25, - "top": 50, - "packetIndex": [393], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "26": { - "keyName": "G2", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [396], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "27": { - "keyName": "G3", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [399], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "28": { - "keyName": "G4", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [402], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "2": { - "keys": { - "29": { - "keyName": "` ~", - "width": 65, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [159], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "30": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [90], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "31": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [93], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "32": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [96], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "33": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [99], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "34": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [102], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "35": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [105], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "36": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [108], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "37": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [111], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "38": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [114], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "39": { - "keyName": "0", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [117], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "40": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [135], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "41": { - "keyName": "=", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [138], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "42": { - "keyName": "<---", - "width": 150, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [126], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide3" - }, - "43": { - "keyName": "Ins", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [219], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "44": { - "keyName": "Home", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [222], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "45": { - "keyName": "PgUp", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [225], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "46": { - "keyName": "Num", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [249], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "47": { - "keyName": "/", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [252], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "48": { - "keyName": "*", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [255], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "49": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [258], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "3": { - "keys": { - "50": { - "keyName": "Tab", - "width": 108, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [129], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide" - }, - "51": { - "keyName": "Q", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [60], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "52": { - "keyName": "W", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [78], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "53": { - "keyName": "E", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [24], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "54": { - "keyName": "R", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [63], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "55": { - "keyName": "T", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [69], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "56": { - "keyName": "Z", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [84], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "57": { - "keyName": "U", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [72], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "58": { - "keyName": "I", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [36], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "59": { - "keyName": "O", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [54], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "60": { - "keyName": "P", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [57], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "61": { - "keyName": "[ {", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [141], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "62": { - "keyName": "] }", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [144], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "63": { - "keyName": "\\ |", - "width": 107, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [147], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide" - }, - "64": { - "keyName": "Del", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [228], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "65": { - "keyName": "End", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [231], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "66": { - "keyName": "PgDn", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [234], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "67": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [285], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "68": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [288], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "69": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [291], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "70": { - "keyName": "+", - "width": 65, - "height": 155, - "left": 15, - "top": 15, - "packetIndex": [261], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key-125" - } - } - }, - "4": { - "keys": { - "71": { - "keyName": "CAPS", - "width": 131, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [171], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide" - }, - "72": { - "keyName": "A", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [12], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "73": { - "keyName": "S", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [66], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "74": { - "keyName": "D", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [21], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "75": { - "keyName": "F", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [27], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "76": { - "keyName": "G", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [30], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "77": { - "keyName": "H", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [33], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "78": { - "keyName": "J", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [39], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "79": { - "keyName": "K", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [42], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "80": { - "keyName": "L", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [45], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "81": { - "keyName": "; :", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [153], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "82": { - "keyName": "' ''", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [156], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "83": { - "keyName": "Enter", - "width": 164, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [120], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide3" - }, - "84": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 275, - "top": 15, - "packetIndex": [276], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1,1,1,1,1] - }, - "85": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [279], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "86": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [282], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "5": { - "keys": { - "87": { - "keyName": "Shift", - "width": 170, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [318], - "color": { - "red": 255, - "green": 255, - "blue": 0 - }, - "css": "keyboard-key wide3" - }, - "88": { - "keyName": "Y", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [87], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "89": { - "keyName": "X", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [81], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "90": { - "keyName": "C", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [18], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "91": { - "keyName": "V", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [75], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "92": { - "keyName": "B", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [15], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "93": { - "keyName": "N", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [51], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "94": { - "keyName": "M", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [48], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "95": { - "keyName": ", <", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [162], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "96": { - "keyName": ". >", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [165], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "97": { - "keyName": "/ ?", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [168], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "98": { - "keyName": "Shift", - "width": 205, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [330], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide3" - }, - "99": { - "keyName": "↑", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "packetIndex": [246], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1,1] - }, - "100": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "packetIndex": [267], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1,1] - }, - "101": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [270], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "102": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [273], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "103": { - "keyName": "Enter", - "width": 65, - "height": 155, - "left": 15, - "top": 15, - "packetIndex": [264], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key-125" - } - } - }, - "6": { - "keys": { - "104": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [315], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide" - }, - "105": { - "keyName": "Win", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [324], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "106": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [321], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide" - }, - "107": { - "keyName": "----------", - "width": 455, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [132], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "css": "keyboard-key wide7" - }, - "108": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [333], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "109": { - "keyName": "Fn", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [366], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "110": { - "keyName": "Menu", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [303], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "111": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [327], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "112": { - "keyName": "←", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [240], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1] - }, - "113": { - "keyName": "↓", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [243], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "114": { - "keyName": "→", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [237], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "115": { - "keyName": "0", - "width": 145, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [294], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "spacing": [1], - "css": "keyboard-key wide" - }, - "116": { - "keyName": ".", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [297], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - } - } -} \ No newline at end of file diff --git a/database/keyboard/k100airW.json b/database/keyboard/k100airW.json index 0ca47f9..c840ebc 100644 --- a/database/keyboard/k100airW.json +++ b/database/keyboard/k100airW.json @@ -1,5 +1,7 @@ { - "version": 1, + "version": 2, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k100airW-default", "device": "K100 AIR RGB", "layout": "US", diff --git a/database/keyboard/k55core-eu.json b/database/keyboard/k55core-eu.json deleted file mode 100644 index 306496f..0000000 --- a/database/keyboard/k55core-eu.json +++ /dev/null @@ -1,952 +0,0 @@ -{ - "key": "k55core-default", - "device": "K55 Core RGB", - "layout": "EU", - "rows": 6, - "zones": { - "1":{ - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "2":{ - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "3":{ - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "4":{ - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "5":{ - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "6":{ - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "7":{ - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "8":{ - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "9":{ - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "10":{ - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - }, - "row": { - "0": { - "keys": { - "1": { - "keyName": "ESC", - "width": 65, - "height": 70, - "left": 0, - "top": 0, - "zone": 1 - }, - "2": { - "keyName": "F1", - "width": 65, - "height": 70, - "left": 95, - "top": 0, - "zone": 2 - }, - "3": { - "keyName": "F2", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "zone": 2 - }, - "4": { - "keyName": "F3", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "zone": 3 - }, - "5": { - "keyName": "F4", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "zone": 3 - }, - "6": { - "keyName": "F5", - "width": 65, - "height": 70, - "left": 55, - "top": 0, - "zone": 4 - }, - "7": { - "keyName": "F6", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "zone": 4 - }, - "8": { - "keyName": "F7", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "zone": 5 - }, - "9": { - "keyName": "F8", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "zone": 5 - }, - "10": { - "keyName": "F9", - "width": 65, - "height": 70, - "left": 60, - "top": 0, - "zone": 6 - }, - "11": { - "keyName": "F10", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "zone": 6 - }, - "12": { - "keyName": "F11", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "zone": 7 - }, - "13": { - "keyName": "F12", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "zone": 7 - }, - "14": { - "keyName": "PrtSc", - "width": 65, - "height": 70, - "left": 25, - "top": 0, - "zone": 8 - }, - "15": { - "keyName": "ScrLk", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "zone": 8 - }, - "16": { - "keyName": "Pause", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "zone": 8 - } - } - }, - "1": { - "keys": { - "17": { - "keyName": "` ~", - "width": 65, - "height": 70, - "left": 0, - "top": 15, - "zone": 1 - }, - "18": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 1 - }, - "19": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 2 - }, - "20": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 2 - }, - "21": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 3 - }, - "22": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 3 - }, - "23": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 4 - }, - "24": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 4 - }, - "25": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 5 - }, - "26": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 5 - }, - "27": { - "keyName": "0", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 5 - }, - "28": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 6 - }, - "29": { - "keyName": "=", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 6 - }, - "30": { - "keyName": "<---", - "width": 150, - "height": 70, - "left": 15, - "top": 15, - "zone": 7 - }, - "31": { - "keyName": "Ins", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "zone": 8 - }, - "32": { - "keyName": "Home", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 8 - }, - "33": { - "keyName": "PgUp", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 8 - }, - "34": { - "keyName": "Num", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "zone": 9 - }, - "35": { - "keyName": "/", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 9 - }, - "36": { - "keyName": "*", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 10 - }, - "37": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 10 - } - } - }, - "2": { - "keys": { - "38": { - "keyName": "Tab", - "width": 108, - "height": 70, - "left": 0, - "top": 15, - "zone": 1 - }, - "39": { - "keyName": "Q", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 2 - }, - "40": { - "keyName": "W", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 2 - }, - "41": { - "keyName": "E", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 3 - }, - "42": { - "keyName": "R", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 3 - }, - "43": { - "keyName": "T", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 3 - }, - "44": { - "keyName": "Z", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 4 - }, - "45": { - "keyName": "U", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 4 - }, - "46": { - "keyName": "I", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 5 - }, - "47": { - "keyName": "O", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 5 - }, - "48": { - "keyName": "P", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 6 - }, - "49": { - "keyName": "[ {", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 6 - }, - "50": { - "keyName": "] }", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 7 - }, - "51": { - "keyName": "\\ |", - "width": 107, - "height": 70, - "left": 15, - "top": 15, - "zone": 7 - }, - "52": { - "keyName": "Del", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "zone": 8 - }, - "53": { - "keyName": "End", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 8 - }, - "54": { - "keyName": "PgDn", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 8 - }, - "55": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "zone": 9 - }, - "56": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 9 - }, - "57": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 10 - }, - "58": { - "keyName": "+", - "width": 65, - "height": 155, - "left": 15, - "top": 15, - "zone": 10 - } - } - }, - "3": { - "keys": { - "59": { - "keyName": "CAPS", - "width": 131, - "height": 70, - "left": 0, - "top": 15, - "zone": 1 - }, - "60": { - "keyName": "A", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 2 - }, - "61": { - "keyName": "S", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 2 - }, - "62": { - "keyName": "D", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 3 - }, - "63": { - "keyName": "F", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 3 - }, - "64": { - "keyName": "G", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 3 - }, - "65": { - "keyName": "H", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 4 - }, - "66": { - "keyName": "J", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 4 - }, - "67": { - "keyName": "K", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 5 - }, - "68": { - "keyName": "L", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 5 - }, - "69": { - "keyName": "; :", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 6 - }, - "70": { - "keyName": "' ''", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 6 - }, - "71": { - "keyName": "Enter", - "width": 164, - "height": 70, - "left": 15, - "top": 15, - "zone": 7 - }, - "72": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 275, - "top": 15, - "zone": 9 - }, - "73": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 9 - }, - "74": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 10 - } - } - }, - "4": { - "keys": { - "75": { - "keyName": "Shift", - "width": 170, - "height": 70, - "left": 0, - "top": 15, - "zone": 1 - }, - "76": { - "keyName": "Y", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 2 - }, - "77": { - "keyName": "X", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 2 - }, - "78": { - "keyName": "C", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 3 - }, - "79": { - "keyName": "V", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 3 - }, - "80": { - "keyName": "B", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 4 - }, - "81": { - "keyName": "N", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 4 - }, - "82": { - "keyName": "M", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 5 - }, - "83": { - "keyName": ", <", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 5 - }, - "84": { - "keyName": ". >", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 6 - }, - "85": { - "keyName": "/ ?", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 6 - }, - "86": { - "keyName": "Shift", - "width": 205, - "height": 70, - "left": 15, - "top": 15, - "zone": 7 - }, - "87": { - "keyName": "↑", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "zone": 8 - }, - "88": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "zone": 9 - }, - "89": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 9 - }, - "90": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 10 - }, - "91": { - "keyName": "Enter", - "width": 65, - "height": 155, - "left": 15, - "top": 15, - "zone": 10 - } - } - }, - "5": { - "keys": { - "92": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 0, - "top": 15, - "zone": 1 - }, - "93": { - "keyName": "Win", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "zone": 2 - }, - "94": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "zone": 2 - }, - "95": { - "keyName": "----------", - "width": 151, - "height": 70, - "left": 15, - "top": 15, - "zone": 3 - }, - "96": { - "keyName": "----------", - "width": 153, - "height": 70, - "left": 0, - "top": 15, - "zone": 4 - }, - "97": { - "keyName": "----------", - "width": 151, - "height": 70, - "left": 0, - "top": 15, - "zone": 5 - }, - "98": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "zone": 6 - }, - "99": { - "keyName": "Fn", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "zone": 6 - }, - "100": { - "keyName": "Menu", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "zone": 7 - }, - "101": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "zone": 7 - }, - "102": { - "keyName": "←", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "zone": 8 - }, - "103": { - "keyName": "↓", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 8 - }, - "104": { - "keyName": "→", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 8 - }, - "105": { - "keyName": "0", - "width": 145, - "height": 70, - "left": 25, - "top": 15, - "zone": 9 - }, - "106": { - "keyName": ".", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "zone": 10 - } - } - } - } -} \ No newline at end of file diff --git a/database/keyboard/k55core.json b/database/keyboard/k55core.json index f5200cb..d0d0325 100644 --- a/database/keyboard/k55core.json +++ b/database/keyboard/k55core.json @@ -1,4 +1,7 @@ { + "version": 1, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k55core-default", "device": "K55 Core RGB", "layout": "US", diff --git a/database/keyboard/k65plus-eu.json b/database/keyboard/k65plus-eu.json deleted file mode 100644 index fc51e02..0000000 --- a/database/keyboard/k65plus-eu.json +++ /dev/null @@ -1,1085 +0,0 @@ -{ - "key": "k65plus-default", - "device": "K65 Plus Wireless", - "layout": "EU", - "rows": 6, - "row": { - "0": { - "keys": { - "1": { - "keyName": "ESC", - "width": 70, - "height": 70, - "left": 0, - "top": 0, - "packetIndex": [123], - "color": { - "red": 0, - "green": 255, - "blue": 0 - } - }, - "2": { - "keyName": "F1", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [174], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "3": { - "keyName": "F2", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [177], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "4": { - "keyName": "F3", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [180], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "5": { - "keyName": "F4", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [183], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "6": { - "keyName": "F5", - "width": 70, - "height": 70, - "left": 47, - "top": 0, - "packetIndex": [186], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "7": { - "keyName": "F6", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [189], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "8": { - "keyName": "F7", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [192], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "9": { - "keyName": "F8", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [195], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "10": { - "keyName": "F9", - "width": 70, - "height": 70, - "left": 47, - "top": 0, - "packetIndex": [198], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "11": { - "keyName": "F10", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [201], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "12": { - "keyName": "F11", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [204], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "13": { - "keyName": "F12", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [207], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "14": { - "keyName": "Delete", - "width": 70, - "height": 70, - "left": 20, - "top": 0, - "packetIndex": [228], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "1": { - "keys": { - "15": { - "keyName": "` ~", - "width": 70, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [159], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "16": { - "keyName": "1", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [90], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "17": { - "keyName": "2", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [93], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "18": { - "keyName": "3", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [96], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "19": { - "keyName": "4", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [99], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "20": { - "keyName": "5", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [102], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "21": { - "keyName": "6", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [105], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "22": { - "keyName": "7", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [108], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "23": { - "keyName": "8", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [111], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "24": { - "keyName": "9", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [114], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "25": { - "keyName": "0", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [117], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "26": { - "keyName": "-", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [135], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "27": { - "keyName": "=", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [138], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "28": { - "keyName": "Backspace", - "width": 140, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [126], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "29": { - "keyName": "Home", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [222], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "2": { - "keys": { - "30": { - "keyName": "Tab", - "width": 100, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [129], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "31": { - "keyName": "Q", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [60], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "32": { - "keyName": "W", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [78], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "33": { - "keyName": "E", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [24], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "34": { - "keyName": "R", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [63], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "35": { - "keyName": "T", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [69], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "36": { - "keyName": "Z", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [84], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "37": { - "keyName": "U", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [72], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "38": { - "keyName": "I", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [36], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "39": { - "keyName": "O", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [54], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "40": { - "keyName": "P", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [57], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "41": { - "keyName": "[ {", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [141], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "42": { - "keyName": "] }", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [144], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "43": { - "keyName": "\\ |", - "width": 110, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [147], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "44": { - "keyName": "PgUp", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [225], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "3": { - "keys": { - "45": { - "keyName": "Caps Lock", - "width": 120, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [171], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "46": { - "keyName": "A", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [12], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "47": { - "keyName": "S", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [66], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "48": { - "keyName": "D", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [21], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "49": { - "keyName": "F", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [27], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "50": { - "keyName": "G", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [30], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "51": { - "keyName": "H", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [33], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "52": { - "keyName": "J", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [39], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "53": { - "keyName": "K", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [42], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "54": { - "keyName": "L", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [45], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "55": { - "keyName": "; :", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [153], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "56": { - "keyName": "' ''", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [156], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "57": { - "keyName": "Enter", - "width": 175, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [120], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "58": { - "keyName": "PgDn", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [234], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "4": { - "keys": { - "59": { - "keyName": "Shift", - "width": 175, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [318], - "color": { - "red": 255, - "green": 255, - "blue": 0 - } - }, - "60": { - "keyName": "Y", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [87], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "61": { - "keyName": "X", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [81], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "62": { - "keyName": "C", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [18], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "63": { - "keyName": "V", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [75], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "64": { - "keyName": "B", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [15], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "65": { - "keyName": "N", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [51], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "66": { - "keyName": "M", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [48], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "67": { - "keyName": ", <", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [162], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "68": { - "keyName": ". >", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [165], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "69": { - "keyName": "/ ?", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [168], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "70": { - "keyName": "Shift", - "width": 120, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [330], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "71": { - "keyName": "↑", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [246], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "5": { - "keys": { - "72": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [315], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "73": { - "keyName": "Win", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [324], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "74": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [321], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "75": { - "keyName": "", - "width": 505, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [0, 3, 132], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "76": { - "keyName": "Alt", - "width": 60, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [333], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "77": { - "keyName": "Fn", - "width": 60, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [366], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "78": { - "keyName": "Ctrl", - "width": 60, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [327], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "79": { - "keyName": "←", - "width": 70, - "height": 70, - "left": 45, - "top": 15, - "packetIndex": [240], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "80": { - "keyName": "↓", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [243], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "81": { - "keyName": "→", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [237], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - } - } -} \ No newline at end of file diff --git a/database/keyboard/k65plus.json b/database/keyboard/k65plus.json index 5eaaf08..f8ca074 100644 --- a/database/keyboard/k65plus.json +++ b/database/keyboard/k65plus.json @@ -1,4 +1,7 @@ { + "version": 1, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k65plus-default", "device": "K65 Plus Wireless", "layout": "US", diff --git a/database/keyboard/k65plusW-eu.json b/database/keyboard/k65plusW-eu.json deleted file mode 100644 index 1e7afb5..0000000 --- a/database/keyboard/k65plusW-eu.json +++ /dev/null @@ -1,685 +0,0 @@ -{ - "key": "k65plusW-default", - "device": "K65 Plus Wireless", - "layout": "EU", - "rows": 6, - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "row": { - "0": { - "keys": { - "1": { - "keyName": "ESC", - "width": 70, - "height": 70, - "left": 0, - "top": 0, - "packetIndex": [123] - }, - "2": { - "keyName": "F1", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [174] - }, - "3": { - "keyName": "F2", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [177] - }, - "4": { - "keyName": "F3", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [180] - }, - "5": { - "keyName": "F4", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [183] - }, - "6": { - "keyName": "F5", - "width": 70, - "height": 70, - "left": 47, - "top": 0, - "packetIndex": [186] - }, - "7": { - "keyName": "F6", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [189] - }, - "8": { - "keyName": "F7", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [192] - }, - "9": { - "keyName": "F8", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [195] - }, - "10": { - "keyName": "F9", - "width": 70, - "height": 70, - "left": 47, - "top": 0, - "packetIndex": [198] - }, - "11": { - "keyName": "F10", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [201] - }, - "12": { - "keyName": "F11", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [204] - }, - "13": { - "keyName": "F12", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [207] - }, - "14": { - "keyName": "Delete", - "width": 70, - "height": 70, - "left": 20, - "top": 0, - "packetIndex": [228] - } - } - }, - "1": { - "keys": { - "15": { - "keyName": "` ~", - "width": 70, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [159] - }, - "16": { - "keyName": "1", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [90] - }, - "17": { - "keyName": "2", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [93] - }, - "18": { - "keyName": "3", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [96] - }, - "19": { - "keyName": "4", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [99] - }, - "20": { - "keyName": "5", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [102] - }, - "21": { - "keyName": "6", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [105] - }, - "22": { - "keyName": "7", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [108] - }, - "23": { - "keyName": "8", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [111] - }, - "24": { - "keyName": "9", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [114] - }, - "25": { - "keyName": "0", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [117] - }, - "26": { - "keyName": "-", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [135] - }, - "27": { - "keyName": "=", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [138] - }, - "28": { - "keyName": "Backspace", - "width": 140, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [126] - }, - "29": { - "keyName": "Home", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [222] - } - } - }, - "2": { - "keys": { - "30": { - "keyName": "Tab", - "width": 100, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [129] - }, - "31": { - "keyName": "Q", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [60] - }, - "32": { - "keyName": "W", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [78] - }, - "33": { - "keyName": "E", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [24] - }, - "34": { - "keyName": "R", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [63] - }, - "35": { - "keyName": "T", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [69] - }, - "36": { - "keyName": "Z", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [84] - }, - "37": { - "keyName": "U", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [72] - }, - "38": { - "keyName": "I", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [36] - }, - "39": { - "keyName": "O", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [54] - }, - "40": { - "keyName": "P", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [57] - }, - "41": { - "keyName": "[ {", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [141] - }, - "42": { - "keyName": "] }", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [144] - }, - "43": { - "keyName": "\\ |", - "width": 110, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [147] - }, - "44": { - "keyName": "PgUp", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [225] - } - } - }, - "3": { - "keys": { - "45": { - "keyName": "Caps Lock", - "width": 120, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [171] - }, - "46": { - "keyName": "A", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [12] - }, - "47": { - "keyName": "S", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [66] - }, - "48": { - "keyName": "D", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [21] - }, - "49": { - "keyName": "F", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [27] - }, - "50": { - "keyName": "G", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [30] - }, - "51": { - "keyName": "H", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [33] - }, - "52": { - "keyName": "J", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [39] - }, - "53": { - "keyName": "K", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [42] - }, - "54": { - "keyName": "L", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [45] - }, - "55": { - "keyName": "; :", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [153] - }, - "56": { - "keyName": "' ''", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [156] - }, - "57": { - "keyName": "Enter", - "width": 175, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [120] - }, - "58": { - "keyName": "PgDn", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [234] - } - } - }, - "4": { - "keys": { - "59": { - "keyName": "Shift", - "width": 175, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [318] - }, - "60": { - "keyName": "Y", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [87] - }, - "61": { - "keyName": "X", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [81] - }, - "62": { - "keyName": "C", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [18] - }, - "63": { - "keyName": "V", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [75] - }, - "64": { - "keyName": "B", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [15] - }, - "65": { - "keyName": "N", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [51] - }, - "66": { - "keyName": "M", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [48] - }, - "67": { - "keyName": ", <", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [162] - }, - "68": { - "keyName": ". >", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [165] - }, - "69": { - "keyName": "/ ?", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [168] - }, - "70": { - "keyName": "Shift", - "width": 120, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [330] - }, - "71": { - "keyName": "↑", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [246] - } - } - }, - "5": { - "keys": { - "72": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [315] - }, - "73": { - "keyName": "Win", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [324] - }, - "74": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [321] - }, - "75": { - "keyName": "", - "width": 505, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [0, 3, 132] - }, - "76": { - "keyName": "Alt", - "width": 60, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [333] - }, - "77": { - "keyName": "Fn", - "width": 60, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [366] - }, - "78": { - "keyName": "Ctrl", - "width": 60, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [327] - }, - "79": { - "keyName": "←", - "width": 70, - "height": 70, - "left": 45, - "top": 15, - "packetIndex": [240] - }, - "80": { - "keyName": "↓", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [243] - }, - "81": { - "keyName": "→", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [237] - } - } - } - } -} \ No newline at end of file diff --git a/database/keyboard/k65plusW.json b/database/keyboard/k65plusW.json index e9b5252..9e9ceb0 100644 --- a/database/keyboard/k65plusW.json +++ b/database/keyboard/k65plusW.json @@ -1,4 +1,7 @@ { + "version": 1, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k65plusW-default", "device": "K65 Plus Wireless", "layout": "US", diff --git a/database/keyboard/k65pm-eu.json b/database/keyboard/k65pm-eu.json deleted file mode 100644 index 9f8f498..0000000 --- a/database/keyboard/k65pm-eu.json +++ /dev/null @@ -1,899 +0,0 @@ -{ - "key": "k65pm-default", - "device": "K65 Pro Mini", - "layout": "EU", - "rows": 5, - "row": { - "0": { - "keys": { - "1": { - "keyName": "ESC", - "width": 70, - "height": 70, - "left": 0, - "top": 0, - "packetIndex": [123], - "color": { - "red": 0, - "green": 255, - "blue": 0 - } - }, - "2": { - "keyName": "1", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [90], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "3": { - "keyName": "2", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [93], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "4": { - "keyName": "3", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [96], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "5": { - "keyName": "4", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [99], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "6": { - "keyName": "5", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [102], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "7": { - "keyName": "6", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [105], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "8": { - "keyName": "7", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [108], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "9": { - "keyName": "8", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [111], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "10": { - "keyName": "9", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [114], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "11": { - "keyName": "0", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [117], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "12": { - "keyName": "-", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [135], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "13": { - "keyName": "=", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [138], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "14": { - "keyName": "<---", - "width": 140, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [126], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "15": { - "keyName": "Logo", - "width": 70, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [387], - "color": { - "red": 255, - "green": 255, - "blue": 0 - } - } - } - }, - "1": { - "keys": { - "16": { - "keyName": "TAB", - "width": 100, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [129], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "17": { - "keyName": "Q", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [60], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "18": { - "keyName": "W", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [78], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "19": { - "keyName": "E", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [24], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "20": { - "keyName": "R", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [63], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "21": { - "keyName": "T", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [69], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "22": { - "keyName": "Z", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [84], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "23": { - "keyName": "U", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [72], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "24": { - "keyName": "I", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [36], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "25": { - "keyName": "O", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [54], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "26": { - "keyName": "P", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [57], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "27": { - "keyName": "[ {", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [141], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "28": { - "keyName": "] }", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [144], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "29": { - "keyName": "\\ |", - "width": 110, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [147], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "30": { - "keyName": "DEL", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [228], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "2": { - "keys": { - "31": { - "keyName": "CAPS", - "width": 120, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [171], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "32": { - "keyName": "A", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [12], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "33": { - "keyName": "S", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [66], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "34": { - "keyName": "D", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [21], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "35": { - "keyName": "F", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [27], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "36": { - "keyName": "G", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [30], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "37": { - "keyName": "H", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [33], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "38": { - "keyName": "J", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [39], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "39": { - "keyName": "K", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [42], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "40": { - "keyName": "L", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [45], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "41": { - "keyName": "; :", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [153], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "42": { - "keyName": "' ''", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [156], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "43": { - "keyName": "ENTER", - "width": 175, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [120], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "44": { - "keyName": "PG UP", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [225], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "3": { - "keys": { - "45": { - "keyName": "SHIFT", - "width": 175, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [318], - "color": { - "red": 255, - "green": 255, - "blue": 0 - } - }, - "46": { - "keyName": "Y", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [87], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "47": { - "keyName": "X", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [81], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "48": { - "keyName": "C", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [18], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "49": { - "keyName": "V", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [75], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "50": { - "keyName": "B", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [15], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "51": { - "keyName": "N", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [51], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "52": { - "keyName": "M", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [48], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "53": { - "keyName": ", <", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [162], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "54": { - "keyName": ". >", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [165], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "55": { - "keyName": "/ ?", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [168], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "56": { - "keyName": "SHIFT", - "width": 120, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [330], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "57": { - "keyName": "↑", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [246], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "58": { - "keyName": "PG DN", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [234], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "4": { - "keys": { - "59": { - "keyName": "CTRL", - "width": 90, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [315], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "60": { - "keyName": "Win", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [324], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "61": { - "keyName": "ALT", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [321], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "62": { - "keyName": "SPACE", - "width": 520, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [0, 3, 132], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "63": { - "keyName": "ALT", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [333], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "64": { - "keyName": "FN", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [366], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "65": { - "keyName": "←", - "width": 70, - "height": 70, - "left": 45, - "top": 15, - "packetIndex": [240], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "66": { - "keyName": "↓", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [243], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "67": { - "keyName": "→", - "width": 70, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [237], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - } - } -} \ No newline at end of file diff --git a/database/keyboard/k65pm.json b/database/keyboard/k65pm.json index 9b4c22d..bda8dd5 100644 --- a/database/keyboard/k65pm.json +++ b/database/keyboard/k65pm.json @@ -1,4 +1,7 @@ { + "version": 1, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k65pm-default", "device": "K65 Pro Mini", "layout": "US", @@ -186,7 +189,8 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide3" }, "15": { "keyName": "Logo", @@ -216,7 +220,8 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide" }, "17": { "keyName": "Q", @@ -385,7 +390,8 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide" }, "30": { "keyName": "DEL", @@ -415,7 +421,8 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide" }, "32": { "keyName": "A", @@ -571,7 +578,8 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide3" }, "44": { "keyName": "PG UP", @@ -601,7 +609,8 @@ "red": 255, "green": 255, "blue": 0 - } + }, + "css": "keyboard-key wide3" }, "46": { "keyName": "Z", @@ -744,7 +753,8 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide" }, "57": { "keyName": "↑", @@ -787,7 +797,8 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide" }, "60": { "keyName": "Win", @@ -813,7 +824,8 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide" }, "62": { "keyName": "SPACE", @@ -826,7 +838,8 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide6" }, "63": { "keyName": "ALT", @@ -865,7 +878,8 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "spacing": [1] }, "66": { "keyName": "↓", diff --git a/database/keyboard/k70core.json b/database/keyboard/k70core.json index 4dbf151..278065e 100644 --- a/database/keyboard/k70core.json +++ b/database/keyboard/k70core.json @@ -1,4 +1,7 @@ { + "version": 1, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k70core-default", "device": "K70 Core RGB", "layout": "US", diff --git a/database/keyboard/k70coretkl-eu.json b/database/keyboard/k70coretkl-eu.json deleted file mode 100644 index 309dba3..0000000 --- a/database/keyboard/k70coretkl-eu.json +++ /dev/null @@ -1,1137 +0,0 @@ -{ - "key": "k70coretkl-default", - "device": "K70 CORE TKL", - "layout": "EU", - "rows": 6, - "row": { - "0": { - "keys": { - "1": { - "keyName": "ESC", - "width": 65, - "height": 70, - "left": 0, - "top": 0, - "packetIndex": [123], - "color": { - "red": 0, - "green": 255, - "blue": 0 - } - }, - "2": { - "keyName": "F1", - "width": 65, - "height": 70, - "left": 95, - "top": 0, - "packetIndex": [174], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "3": { - "keyName": "F2", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [177], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "4": { - "keyName": "F3", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [180], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "5": { - "keyName": "F4", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [183], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "6": { - "keyName": "F5", - "width": 65, - "height": 70, - "left": 55, - "top": 0, - "packetIndex": [186], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "7": { - "keyName": "F6", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [189], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "8": { - "keyName": "F7", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [192], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "9": { - "keyName": "F8", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [195], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "10": { - "keyName": "F9", - "width": 65, - "height": 70, - "left": 60, - "top": 0, - "packetIndex": [198], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "11": { - "keyName": "F10", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [201], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "12": { - "keyName": "F11", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [204], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "13": { - "keyName": "F12", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [207], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "14": { - "keyName": "Profile", - "width": 65, - "height": 70, - "left": 25, - "top": 0, - "packetIndex": [372], - "color": { - "red": 255, - "green": 255, - "blue": 0 - } - } - } - }, - "1": { - "keys": { - "15": { - "keyName": "` ~", - "width": 65, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [159], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "16": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [90], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "17": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [93], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "18": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [96], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "19": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [99], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "20": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [102], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "21": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [105], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "22": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [108], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "23": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [111], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "24": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [114], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "25": { - "keyName": "0", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [117], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "26": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [135], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "27": { - "keyName": "=", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [138], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "28": { - "keyName": "<---", - "width": 150, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [126], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "29": { - "keyName": "Ins", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [219], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "30": { - "keyName": "Home", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [222], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "31": { - "keyName": "PgUp", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [225], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "2": { - "keys": { - "32": { - "keyName": "Tab", - "width": 108, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [129], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "33": { - "keyName": "Q", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [60], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "34": { - "keyName": "W", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [78], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "35": { - "keyName": "E", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [24], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "36": { - "keyName": "R", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [63], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "37": { - "keyName": "T", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [69], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "38": { - "keyName": "Z", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [84], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "39": { - "keyName": "U", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [72], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "40": { - "keyName": "I", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [36], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "41": { - "keyName": "O", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [54], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "42": { - "keyName": "P", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [57], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "43": { - "keyName": "[ {", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [141], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "44": { - "keyName": "] }", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [144], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "45": { - "keyName": "\\ |", - "width": 107, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [147], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "46": { - "keyName": "Del", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [228], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "47": { - "keyName": "End", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [231], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "48": { - "keyName": "PgDn", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [234], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "3": { - "keys": { - "49": { - "keyName": "CAPS", - "width": 131, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [171], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "50": { - "keyName": "A", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [12], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "51": { - "keyName": "S", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [66], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "52": { - "keyName": "D", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [21], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "53": { - "keyName": "F", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [27], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "54": { - "keyName": "G", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [30], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "55": { - "keyName": "H", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [33], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "56": { - "keyName": "J", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [39], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "57": { - "keyName": "K", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [42], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "58": { - "keyName": "L", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [45], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "59": { - "keyName": "; :", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [153], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "60": { - "keyName": "' ''", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [156], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "61": { - "keyName": "Enter", - "width": 164, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [120], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "4": { - "keys": { - "62": { - "keyName": "Shift", - "width": 170, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [318], - "color": { - "red": 255, - "green": 255, - "blue": 0 - } - }, - "63": { - "keyName": "Y", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [87], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "64": { - "keyName": "X", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [81], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "65": { - "keyName": "C", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [18], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "66": { - "keyName": "V", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [75], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "67": { - "keyName": "B", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [15], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "68": { - "keyName": "N", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [51], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "69": { - "keyName": "M", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [48], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "70": { - "keyName": ", <", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [162], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "71": { - "keyName": ". >", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [165], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "72": { - "keyName": "/ ?", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [168], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "73": { - "keyName": "Shift", - "width": 205, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [330], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "74": { - "keyName": "↑", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "packetIndex": [246], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "5": { - "keys": { - "75": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [315], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "76": { - "keyName": "Win", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [324], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "77": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [321], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "78": { - "keyName": "----------", - "width": 455, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [132], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "79": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [333], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "80": { - "keyName": "Fn", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [366], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "81": { - "keyName": "Menu", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [303], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "82": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [327], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "83": { - "keyName": "←", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [240], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "84": { - "keyName": "↓", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [243], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "85": { - "keyName": "→", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [237], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - } - } -} \ No newline at end of file diff --git a/database/keyboard/k70coretkl.json b/database/keyboard/k70coretkl.json index 5f5afe2..14bc642 100644 --- a/database/keyboard/k70coretkl.json +++ b/database/keyboard/k70coretkl.json @@ -1,4 +1,7 @@ { + "version": 1, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k70coretkl-default", "device": "K70 CORE TKL", "layout": "US", diff --git a/database/keyboard/k70coretklW-eu.json b/database/keyboard/k70coretklW-eu.json deleted file mode 100644 index 0d98923..0000000 --- a/database/keyboard/k70coretklW-eu.json +++ /dev/null @@ -1,1156 +0,0 @@ -{ - "key": "k70coretklW-default", - "device": "K70 CORE TKL WL", - "layout": "EU", - "rows": 6, - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "row": { - "0": { - "keys": { - "1": { - "keyName": "ESC", - "width": 65, - "height": 70, - "left": 0, - "top": 0, - "packetIndex": [123], - "color": { - "red": 0, - "green": 255, - "blue": 0 - } - }, - "2": { - "keyName": "F1", - "width": 65, - "height": 70, - "left": 95, - "top": 0, - "packetIndex": [174], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "3": { - "keyName": "F2", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [177], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "4": { - "keyName": "F3", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [180], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "5": { - "keyName": "F4", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [183], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "6": { - "keyName": "F5", - "width": 65, - "height": 70, - "left": 55, - "top": 0, - "packetIndex": [186], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "7": { - "keyName": "F6", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [189], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "8": { - "keyName": "F7", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [192], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "9": { - "keyName": "F8", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [195], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "10": { - "keyName": "F9", - "width": 65, - "height": 70, - "left": 60, - "top": 0, - "packetIndex": [198], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "11": { - "keyName": "F10", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [201], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "12": { - "keyName": "F11", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [204], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "13": { - "keyName": "F12", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [207], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "14": { - "keyName": "icon-speed.svg", - "width": 65, - "height": 70, - "left": 25, - "top": 0, - "packetIndex": [3], - "color": { - "red": 255, - "green": 255, - "blue": 0 - }, - "svg": true - }, - "15": { - "keyName": "Profile", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [6], - "color": { - "red": 255, - "green": 255, - "blue": 0 - } - } - } - }, - "1": { - "keys": { - "16": { - "keyName": "` ~", - "width": 65, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [159], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "17": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [90], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "18": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [93], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "19": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [96], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "20": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [99], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "21": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [102], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "22": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [105], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "23": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [108], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "24": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [111], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "25": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [114], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "26": { - "keyName": "0", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [117], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "27": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [135], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "28": { - "keyName": "=", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [138], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "29": { - "keyName": "<---", - "width": 150, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [126], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "30": { - "keyName": "Ins", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [219], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "31": { - "keyName": "Home", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [222], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "32": { - "keyName": "PgUp", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [225], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "2": { - "keys": { - "33": { - "keyName": "Tab", - "width": 108, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [129], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "34": { - "keyName": "Q", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [60], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "35": { - "keyName": "W", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [78], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "36": { - "keyName": "E", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [24], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "37": { - "keyName": "R", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [63], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "38": { - "keyName": "T", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [69], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "39": { - "keyName": "Z", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [84], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "40": { - "keyName": "U", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [72], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "41": { - "keyName": "I", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [36], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "42": { - "keyName": "O", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [54], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "43": { - "keyName": "P", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [57], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "44": { - "keyName": "[ {", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [141], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "45": { - "keyName": "] }", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [144], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "46": { - "keyName": "\\ |", - "width": 107, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [147], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "47": { - "keyName": "Del", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [228], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "48": { - "keyName": "End", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [231], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "49": { - "keyName": "PgDn", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [234], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "3": { - "keys": { - "50": { - "keyName": "CAPS", - "width": 131, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [171], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "51": { - "keyName": "A", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [12], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "52": { - "keyName": "S", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [66], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "53": { - "keyName": "D", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [21], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "54": { - "keyName": "F", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [27], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "55": { - "keyName": "G", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [30], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "56": { - "keyName": "H", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [33], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "57": { - "keyName": "J", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [39], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "58": { - "keyName": "K", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [42], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "59": { - "keyName": "L", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [45], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "60": { - "keyName": "; :", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [153], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "61": { - "keyName": "' ''", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [156], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "62": { - "keyName": "Enter", - "width": 164, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [120], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "4": { - "keys": { - "63": { - "keyName": "Shift", - "width": 170, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [318], - "color": { - "red": 255, - "green": 255, - "blue": 0 - } - }, - "64": { - "keyName": "Y", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [87], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "65": { - "keyName": "X", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [81], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "66": { - "keyName": "C", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [18], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "67": { - "keyName": "V", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [75], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "68": { - "keyName": "B", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [15], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "69": { - "keyName": "N", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [51], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "70": { - "keyName": "M", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [48], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "71": { - "keyName": ", <", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [162], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "72": { - "keyName": ". >", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [165], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "73": { - "keyName": "/ ?", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [168], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "74": { - "keyName": "Shift", - "width": 205, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [330], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "75": { - "keyName": "↑", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "packetIndex": [246], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "5": { - "keys": { - "76": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [315], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "77": { - "keyName": "Win", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [324], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "78": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [321], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "79": { - "keyName": "----------", - "width": 455, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [132], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "80": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [333], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "81": { - "keyName": "Fn", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [366], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "82": { - "keyName": "Menu", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [303], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "83": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [327], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "84": { - "keyName": "←", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [240], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "85": { - "keyName": "↓", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [243], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "86": { - "keyName": "→", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [237], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - } - } -} \ No newline at end of file diff --git a/database/keyboard/k70coretklW.json b/database/keyboard/k70coretklW.json index b38e6fa..a17e211 100644 --- a/database/keyboard/k70coretklW.json +++ b/database/keyboard/k70coretklW.json @@ -1,4 +1,7 @@ { + "version": 1, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k70coretklW-default", "device": "K70 CORE TKL WL", "layout": "US", diff --git a/database/keyboard/k70mk2-eu.json b/database/keyboard/k70mk2-eu.json deleted file mode 100644 index 318ff6b..0000000 --- a/database/keyboard/k70mk2-eu.json +++ /dev/null @@ -1,1539 +0,0 @@ -{ - "key": "k70mk2-default", - "device": "K70 MK2", - "layout": "EU", - "rows": 6, - "row": { - "0": { - "keys": { - "1": { - "keyName": "icon-user.svg", - "width": 65, - "height": 40, - "left": 0, - "top": 0, - "packetIndex": [125], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "2": { - "keyName": "icon-brightness.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 0, - "packetIndex": [137], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "3": { - "keyName": "icon-lock.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 0, - "packetIndex": [8], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "4": { - "keyName": "LOGO", - "width": 202, - "height": 40, - "left": 400, - "top": 0, - "packetIndex": [47], - "color": { - "red": 255, - "green": 255, - "blue": 0 - } - }, - "5": { - "keyName": "LOGO", - "width": 202, - "height": 40, - "left": 0, - "top": 0, - "packetIndex": [59], - "color": { - "red": 255, - "green": 255, - "blue": 0 - } - }, - "6": { - "keyName": "icon-mute.svg", - "width": 65, - "height": 40, - "left": 436, - "top": 0, - "packetIndex": [20], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - } - } - }, - "1": { - "keys": { - "7": { - "keyName": "ESC", - "width": 65, - "height": 70, - "left": 0, - "top": 50, - "packetIndex": [0], - "color": { - "red": 0, - "green": 255, - "blue": 0 - } - }, - "8": { - "keyName": "F1", - "width": 65, - "height": 70, - "left": 95, - "top": 50, - "packetIndex": [12], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "9": { - "keyName": "F2", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [24], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "10": { - "keyName": "F3", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [36], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "11": { - "keyName": "F4", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [48], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "12": { - "keyName": "F5", - "width": 65, - "height": 70, - "left": 55, - "top": 50, - "packetIndex": [60], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "13": { - "keyName": "F6", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [72], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "14": { - "keyName": "F7", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [84], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "15": { - "keyName": "F8", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [96], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "16": { - "keyName": "F9", - "width": 65, - "height": 70, - "left": 60, - "top": 50, - "packetIndex": [108], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "17": { - "keyName": "F10", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [120], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "18": { - "keyName": "F11", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [132], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "19": { - "keyName": "F12", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [6], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "20": { - "keyName": "PrtSc", - "width": 65, - "height": 70, - "left": 25, - "top": 50, - "packetIndex": [18], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "21": { - "keyName": "ScrLk", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [30], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "22": { - "keyName": "Pause", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [42], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "23": { - "keyName": "icon-stop.svg", - "width": 65, - "height": 70, - "left": 25, - "top": 50, - "packetIndex": [32], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "24": { - "keyName": "icon-backward.svg", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [44], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "25": { - "keyName": "icon-pause.svg", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [56], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "26": { - "keyName": "icon-forward.svg", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [68], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - } - } - }, - "2": { - "keys": { - "27": { - "keyName": "` ~", - "width": 65, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [1], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "28": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [13], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "29": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [25], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "30": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [37], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "31": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [49], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "32": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [61], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "33": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [73], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "34": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [85], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "35": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [97], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "36": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [109], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "37": { - "keyName": "0", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [121], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "38": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [133], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "39": { - "keyName": "=", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [7], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "40": { - "keyName": "<---", - "width": 150, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [31], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "41": { - "keyName": "Ins", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [54], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "42": { - "keyName": "Home", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [66], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "43": { - "keyName": "PgUp", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [78], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "44": { - "keyName": "Num", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [80], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "45": { - "keyName": "/", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [92], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "46": { - "keyName": "*", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [104], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "47": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [116], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "3": { - "keys": { - "48": { - "keyName": "Tab", - "width": 108, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [2], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "49": { - "keyName": "Q", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [14], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "50": { - "keyName": "W", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [26], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "51": { - "keyName": "E", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [38], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "52": { - "keyName": "R", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [50], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "53": { - "keyName": "T", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [62], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "54": { - "keyName": "Z", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [74], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "55": { - "keyName": "U", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [86], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "56": { - "keyName": "I", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [98], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "57": { - "keyName": "O", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [110], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "58": { - "keyName": "P", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [122], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "59": { - "keyName": "[ {", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [134], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "60": { - "keyName": "] }", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [90], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "61": { - "keyName": "Enter", - "width": 107, - "height": 155, - "left": 15, - "top": 15, - "packetIndex": [126], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "62": { - "keyName": "Del", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [43], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "63": { - "keyName": "End", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [55], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "64": { - "keyName": "PgDn", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [67], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "65": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [9], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "66": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [21], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "67": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [33], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "68": { - "keyName": "+", - "width": 65, - "height": 155, - "left": 15, - "top": 15, - "packetIndex": [128], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "4": { - "keys": { - "69": { - "keyName": "CAPS", - "width": 108, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [3], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "70": { - "keyName": "A", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [15], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "71": { - "keyName": "S", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [27], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "72": { - "keyName": "D", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [39], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "73": { - "keyName": "F", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [51], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "74": { - "keyName": "G", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [63], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "75": { - "keyName": "H", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [75], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "76": { - "keyName": "J", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [87], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "77": { - "keyName": "K", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [99], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "78": { - "keyName": "L", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [111], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "79": { - "keyName": "; :", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [123], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "80": { - "keyName": "' ''", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [135], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "81": { - "keyName": "\\ |", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [114], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "82": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 397, - "top": 15, - "packetIndex": [57], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "83": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [69], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "84": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [81], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "5": { - "keys": { - "85": { - "keyName": "Shift", - "width": 90, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [4], - "color": { - "red": 255, - "green": 255, - "blue": 0 - } - }, - "86": { - "keyName": "⊞", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [16], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "87": { - "keyName": "Y", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [28], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "88": { - "keyName": "X", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [40], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "89": { - "keyName": "C", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [52], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "90": { - "keyName": "V", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [64], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "91": { - "keyName": "B", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [76], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "92": { - "keyName": "N", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [88], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "93": { - "keyName": "M", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [100], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "94": { - "keyName": ", <", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [112], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "95": { - "keyName": ". >", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [124], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "96": { - "keyName": "/ ?", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [136], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "97": { - "keyName": "Shift", - "width": 205, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [79], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "98": { - "keyName": "↑", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "packetIndex": [103], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "99": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "packetIndex": [93], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "100": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [105], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "101": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [117], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "102": { - "keyName": "Enter", - "width": 65, - "height": 155, - "left": 15, - "top": 15, - "packetIndex": [140], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "6": { - "keys": { - "103": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [5], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "104": { - "keyName": "Win", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [17], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "105": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [29], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "106": { - "keyName": "----------", - "width": 480, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [53], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "107": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [89], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "108": { - "keyName": "Win", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [101], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "109": { - "keyName": "RC", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [113], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "110": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [91], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "111": { - "keyName": "←", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [115], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "112": { - "keyName": "↓", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [127], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "113": { - "keyName": "→", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [139], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "114": { - "keyName": "0", - "width": 145, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [129], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "115": { - "keyName": ".", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [141], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - } - } -} \ No newline at end of file diff --git a/database/keyboard/k70mk2.json b/database/keyboard/k70mk2.json index 081f892..36ec516 100644 --- a/database/keyboard/k70mk2.json +++ b/database/keyboard/k70mk2.json @@ -1,4 +1,7 @@ { + "version": 1, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k70mk2-default", "device": "K70 MK2", "layout": "US", diff --git a/database/keyboard/k70pro-eu.json b/database/keyboard/k70pro-eu.json deleted file mode 100644 index a78d69e..0000000 --- a/database/keyboard/k70pro-eu.json +++ /dev/null @@ -1,1539 +0,0 @@ -{ - "key": "k70pro-default", - "device": "K70 Pro RGB", - "layout": "EU", - "rows": 6, - "row": { - "0": { - "keys": { - "1": { - "keyName": "icon-user.svg", - "width": 65, - "height": 40, - "left": 0, - "top": 0, - "packetIndex": [384], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "2": { - "keyName": "icon-brightness.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 0, - "packetIndex": [339], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "3": { - "keyName": "icon-lock.svg", - "width": 65, - "height": 40, - "left": 15, - "top": 0, - "packetIndex": [342], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "4": { - "keyName": "Logo", - "width": 404, - "height": 40, - "left": 400, - "top": 0, - "packetIndex": [411,414], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "5": { - "keyName": "icon-mute.svg", - "width": 65, - "height": 40, - "left": 515, - "top": 0, - "packetIndex": [306], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - } - } - }, - "1": { - "keys": { - "6": { - "keyName": "ESC", - "width": 65, - "height": 70, - "left": 0, - "top": 50, - "packetIndex": [123], - "color": { - "red": 0, - "green": 255, - "blue": 0 - } - }, - "7": { - "keyName": "F1", - "width": 65, - "height": 70, - "left": 95, - "top": 50, - "packetIndex": [174], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "8": { - "keyName": "F2", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [177], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "9": { - "keyName": "F3", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [180], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "10": { - "keyName": "F4", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [183], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "11": { - "keyName": "F5", - "width": 65, - "height": 70, - "left": 55, - "top": 50, - "packetIndex": [186], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "12": { - "keyName": "F6", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [189], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "13": { - "keyName": "F7", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [192], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "14": { - "keyName": "F8", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [195], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "15": { - "keyName": "F9", - "width": 65, - "height": 70, - "left": 60, - "top": 50, - "packetIndex": [198], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "16": { - "keyName": "F10", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [201], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "17": { - "keyName": "F11", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [204], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "18": { - "keyName": "F12", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [207], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "19": { - "keyName": "PrtSc", - "width": 65, - "height": 70, - "left": 25, - "top": 50, - "packetIndex": [210], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "20": { - "keyName": "ScrLk", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [213], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "21": { - "keyName": "Pause", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [216], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "22": { - "keyName": "icon-stop.svg", - "width": 65, - "height": 70, - "left": 25, - "top": 50, - "packetIndex": [369], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "23": { - "keyName": "icon-backward.svg", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [378], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "24": { - "keyName": "icon-pause.svg", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [372], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - }, - "25": { - "keyName": "icon-forward.svg", - "width": 65, - "height": 70, - "left": 15, - "top": 50, - "packetIndex": [375], - "color": { - "red": 0, - "green": 255, - "blue": 255 - }, - "svg": true - } - } - }, - "2": { - "keys": { - "26": { - "keyName": "` ~", - "width": 65, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [159], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "27": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [90], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "28": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [93], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "29": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [96], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "30": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [99], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "31": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [102], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "32": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [105], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "33": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [108], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "34": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [111], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "35": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [114], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "36": { - "keyName": "0", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [117], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "37": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [135], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "38": { - "keyName": "=", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [138], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "39": { - "keyName": "<---", - "width": 150, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [126], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "40": { - "keyName": "Ins", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [219], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "41": { - "keyName": "Home", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [222], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "42": { - "keyName": "PgUp", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [225], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "43": { - "keyName": "Num", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [249], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "44": { - "keyName": "/", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [252], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "45": { - "keyName": "*", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [255], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "46": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [258], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "3": { - "keys": { - "47": { - "keyName": "Tab", - "width": 108, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [129], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "48": { - "keyName": "Q", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [60], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "49": { - "keyName": "W", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [78], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "50": { - "keyName": "E", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [24], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "51": { - "keyName": "R", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [63], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "52": { - "keyName": "T", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [69], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "53": { - "keyName": "Z", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [84], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "54": { - "keyName": "U", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [72], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "55": { - "keyName": "I", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [36], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "56": { - "keyName": "O", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [54], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "57": { - "keyName": "P", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [57], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "58": { - "keyName": "[ {", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [141], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "59": { - "keyName": "] }", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [144], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "60": { - "keyName": "\\ |", - "width": 107, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [147], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "61": { - "keyName": "Del", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [228], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "62": { - "keyName": "End", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [231], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "63": { - "keyName": "PgDn", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [234], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "64": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [285], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "65": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [288], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "66": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [291], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "67": { - "keyName": "+", - "width": 65, - "height": 155, - "left": 15, - "top": 15, - "packetIndex": [261], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "4": { - "keys": { - "68": { - "keyName": "CAPS", - "width": 131, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [171], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "69": { - "keyName": "A", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [12], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "70": { - "keyName": "S", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [66], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "71": { - "keyName": "D", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [21], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "72": { - "keyName": "F", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [27], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "73": { - "keyName": "G", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [30], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "74": { - "keyName": "H", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [33], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "75": { - "keyName": "J", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [39], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "76": { - "keyName": "K", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [42], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "77": { - "keyName": "L", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [45], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "78": { - "keyName": "; :", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [153], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "79": { - "keyName": "' ''", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [156], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "80": { - "keyName": "Enter", - "width": 164, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [120], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "81": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 275, - "top": 15, - "packetIndex": [276], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "82": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [279], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "83": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [282], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "5": { - "keys": { - "84": { - "keyName": "Shift", - "width": 170, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [318], - "color": { - "red": 255, - "green": 255, - "blue": 0 - } - }, - "85": { - "keyName": "Y", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [87], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "86": { - "keyName": "X", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [81], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "87": { - "keyName": "C", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [18], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "88": { - "keyName": "V", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [75], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "89": { - "keyName": "B", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [15], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "90": { - "keyName": "N", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [51], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "91": { - "keyName": "M", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [48], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "92": { - "keyName": ", <", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [162], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "93": { - "keyName": ". >", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [165], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "94": { - "keyName": "/ ?", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [168], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "95": { - "keyName": "Shift", - "width": 205, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [330], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "96": { - "keyName": "↑", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "packetIndex": [246], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "97": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "packetIndex": [267], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "98": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [270], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "99": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [273], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "100": { - "keyName": "Enter", - "width": 65, - "height": 155, - "left": 15, - "top": 15, - "packetIndex": [264], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "6": { - "keys": { - "101": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [315], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "102": { - "keyName": "Win", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [324], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "103": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [321], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "104": { - "keyName": "", - "width": 150, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [420], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "105": { - "keyName": "----------", - "width": 150, - "height": 70, - "left": 2, - "top": 15, - "packetIndex": [132], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "106": { - "keyName": "", - "width": 151, - "height": 70, - "left": 2, - "top": 15, - "packetIndex": [423], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "107": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [333], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "108": { - "keyName": "Fn", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [366], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "109": { - "keyName": "Menu", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [303], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "110": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [327], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "111": { - "keyName": "←", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [240], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "112": { - "keyName": "↓", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [243], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "113": { - "keyName": "→", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [237], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "114": { - "keyName": "0", - "width": 145, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [294], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "115": { - "keyName": ".", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [297], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - } - } -} \ No newline at end of file diff --git a/database/keyboard/k70pro.json b/database/keyboard/k70pro.json index 30ffa0c..f3fada5 100644 --- a/database/keyboard/k70pro.json +++ b/database/keyboard/k70pro.json @@ -1,4 +1,7 @@ { + "version": 1, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k70pro-default", "device": "K70 Pro RGB", "layout": "US", diff --git a/database/keyboard/k70protkl-eu.json b/database/keyboard/k70protkl-eu.json deleted file mode 100644 index 56a7de6..0000000 --- a/database/keyboard/k70protkl-eu.json +++ /dev/null @@ -1,1151 +0,0 @@ -{ - "key": "k70protkl-default", - "device": "K70 PRO TKL", - "layout": "EU", - "rows": 6, - "row": { - "0": { - "keys": { - "1": { - "keyName": "ESC", - "width": 65, - "height": 70, - "left": 0, - "top": 0, - "packetIndex": [123], - "color": { - "red": 0, - "green": 255, - "blue": 0 - } - }, - "2": { - "keyName": "F1", - "width": 65, - "height": 70, - "left": 95, - "top": 0, - "packetIndex": [174], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "3": { - "keyName": "F2", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [177], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "4": { - "keyName": "F3", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [180], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "5": { - "keyName": "F4", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [183], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "6": { - "keyName": "F5", - "width": 65, - "height": 70, - "left": 55, - "top": 0, - "packetIndex": [186], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "7": { - "keyName": "F6", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [189], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "8": { - "keyName": "F7", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [192], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "9": { - "keyName": "F8", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [195], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "10": { - "keyName": "F9", - "width": 65, - "height": 70, - "left": 60, - "top": 0, - "packetIndex": [198], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "11": { - "keyName": "F10", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [201], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "12": { - "keyName": "F11", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [204], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "13": { - "keyName": "F12", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [207], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "14": { - "keyName": "icon-speed.svg", - "width": 65, - "height": 70, - "left": 25, - "top": 0, - "packetIndex": [390], - "color": { - "red": 255, - "green": 255, - "blue": 0 - }, - "svg": true - }, - "15": { - "keyName": "Profile", - "width": 65, - "height": 70, - "left": 15, - "top": 0, - "packetIndex": [372], - "color": { - "red": 255, - "green": 255, - "blue": 0 - } - } - } - }, - "1": { - "keys": { - "16": { - "keyName": "` ~", - "width": 65, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [159], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "17": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [90], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "18": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [93], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "19": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [96], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "20": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [99], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "21": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [102], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "22": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [105], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "23": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [108], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "24": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [111], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "25": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [114], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "26": { - "keyName": "0", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [117], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "27": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [135], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "28": { - "keyName": "=", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [138], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "29": { - "keyName": "<---", - "width": 150, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [126], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "30": { - "keyName": "Ins", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [219], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "31": { - "keyName": "Home", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [222], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "32": { - "keyName": "PgUp", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [225], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "2": { - "keys": { - "33": { - "keyName": "Tab", - "width": 108, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [129], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "34": { - "keyName": "Q", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [60], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "35": { - "keyName": "W", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [78], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "36": { - "keyName": "E", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [24], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "37": { - "keyName": "R", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [63], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "38": { - "keyName": "T", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [69], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "39": { - "keyName": "Z", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [84], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "40": { - "keyName": "U", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [72], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "41": { - "keyName": "I", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [36], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "42": { - "keyName": "O", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [54], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "43": { - "keyName": "P", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [57], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "44": { - "keyName": "[ {", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [141], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "45": { - "keyName": "] }", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [144], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "46": { - "keyName": "\\ |", - "width": 107, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [147], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "47": { - "keyName": "Del", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [228], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "48": { - "keyName": "End", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [231], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "49": { - "keyName": "PgDn", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [234], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "3": { - "keys": { - "50": { - "keyName": "CAPS", - "width": 131, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [171], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "51": { - "keyName": "A", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [12], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "52": { - "keyName": "S", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [66], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "53": { - "keyName": "D", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [21], - "color": { - "red": 255, - "green": 0, - "blue": 0 - } - }, - "54": { - "keyName": "F", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [27], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "55": { - "keyName": "G", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [30], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "56": { - "keyName": "H", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [33], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "57": { - "keyName": "J", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [39], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "58": { - "keyName": "K", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [42], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "59": { - "keyName": "L", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [45], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "60": { - "keyName": "; :", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [153], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "61": { - "keyName": "' ''", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [156], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "62": { - "keyName": "Enter", - "width": 164, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [120], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "4": { - "keys": { - "63": { - "keyName": "Shift", - "width": 170, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [318], - "color": { - "red": 255, - "green": 255, - "blue": 0 - } - }, - "64": { - "keyName": "Y", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [87], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "65": { - "keyName": "X", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [81], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "66": { - "keyName": "C", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [18], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "67": { - "keyName": "V", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [75], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "68": { - "keyName": "B", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [15], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "69": { - "keyName": "N", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [51], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "70": { - "keyName": "M", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [48], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "71": { - "keyName": ", <", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [162], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "72": { - "keyName": ". >", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [165], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "73": { - "keyName": "/ ?", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [168], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "74": { - "keyName": "Shift", - "width": 205, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [330], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "75": { - "keyName": "↑", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "packetIndex": [246], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - }, - "5": { - "keys": { - "76": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 0, - "top": 15, - "packetIndex": [315], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "77": { - "keyName": "Win", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [324], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "78": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [321], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "79": { - "keyName": "----------", - "width": 455, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [132], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "80": { - "keyName": "Alt", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [333], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "81": { - "keyName": "Fn", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [366], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "82": { - "keyName": "Menu", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [303], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "83": { - "keyName": "Ctrl", - "width": 90, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [327], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "84": { - "keyName": "←", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [240], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "85": { - "keyName": "↓", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [243], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "86": { - "keyName": "→", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [237], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - } - } - } - } -} \ No newline at end of file diff --git a/database/keyboard/k70protkl.json b/database/keyboard/k70protkl.json index 78995de..fc88ddf 100644 --- a/database/keyboard/k70protkl.json +++ b/database/keyboard/k70protkl.json @@ -1,4 +1,7 @@ { + "version": 1, + "uppercaseClass": "key-uppercase", + "fontSize": 14, "key": "k70protkl-default", "device": "K70 PRO TKL", "layout": "US", diff --git a/database/keyboard/k70core-eu.json b/database/keyboard/k70rgbtklcs.json similarity index 87% rename from database/keyboard/k70core-eu.json rename to database/keyboard/k70rgbtklcs.json index 7f0ca9a..94c88b7 100644 --- a/database/keyboard/k70core-eu.json +++ b/database/keyboard/k70rgbtklcs.json @@ -1,17 +1,153 @@ { - "key": "k70core-default", - "device": "K70 Core RGB", - "layout": "EU", - "rows": 6, + "version": 1, + "uppercaseClass": "key-uppercase", + "fontSize": 14, + "key": "k70rgbtklcs-default", + "device": "K70 RGB TKL", + "layout": "US", + "rows": 7, "row": { "0": { "keys": { "1": { + "keyName": "icon-stop.svg", + "width": 65, + "height": 40, + "left": 0, + "top": 0, + "packetIndex": [369], + "color": { + "red": 0, + "green": 255, + "blue": 255 + }, + "svg": true + }, + "2": { + "keyName": "icon-backward.svg", + "width": 65, + "height": 40, + "left": 15, + "top": 0, + "packetIndex": [378], + "color": { + "red": 0, + "green": 255, + "blue": 255 + }, + "svg": true + }, + "3": { + "keyName": "icon-pause.svg", + "width": 65, + "height": 40, + "left": 15, + "top": 0, + "packetIndex": [372], + "color": { + "red": 0, + "green": 255, + "blue": 255 + }, + "svg": true + }, + "4": { + "keyName": "icon-forward.svg", + "width": 65, + "height": 40, + "left": 15, + "top": 0, + "packetIndex": [375], + "color": { + "red": 0, + "green": 255, + "blue": 255 + }, + "svg": true + }, + "5": { + "keyName": "LOGO", + "width": 404, + "height": 40, + "left": 400, + "top": 0, + "packetIndex": [3,9], + "color": { + "red": 0, + "green": 255, + "blue": 255 + }, + "spacing": [1,1,1], + "css": "keyboard-key wide4" + }, + "6": { + "keyName": "icon-user.svg", + "width": 65, + "height": 40, + "left": 185, + "top": 0, + "packetIndex": [384], + "color": { + "red": 0, + "green": 255, + "blue": 255 + }, + "svg": true, + "spacing": [1] + }, + "7": { + "keyName": "icon-brightness.svg", + "width": 65, + "height": 40, + "left": 15, + "top": 0, + "packetIndex": [339], + "color": { + "red": 0, + "green": 255, + "blue": 255 + }, + "svg": true + }, + "8": { + "keyName": "icon-lock.svg", + "width": 65, + "height": 40, + "left": 15, + "top": 0, + "packetIndex": [342], + "color": { + "red": 0, + "green": 255, + "blue": 255 + }, + "svg": true + }, + "9": { + "keyName": "icon-mute.svg", + "width": 65, + "height": 40, + "left": 25, + "top": 0, + "packetIndex": [306], + "color": { + "red": 0, + "green": 255, + "blue": 255 + }, + "svg": true, + "spacing": [1,1] + } + } + }, + "1": { + "keys": { + "10": { "keyName": "ESC", "width": 65, "height": 70, "left": 0, - "top": 0, + "top": 50, "packetIndex": [123], "color": { "red": 0, @@ -19,25 +155,26 @@ "blue": 0 } }, - "2": { + "11": { "keyName": "F1", "width": 65, "height": 70, "left": 95, - "top": 0, + "top": 50, "packetIndex": [174], "color": { "red": 0, "green": 255, "blue": 255 - } + }, + "spacing": [1] }, - "3": { + "12": { "keyName": "F2", "width": 65, "height": 70, "left": 15, - "top": 0, + "top": 50, "packetIndex": [177], "color": { "red": 0, @@ -45,12 +182,12 @@ "blue": 255 } }, - "4": { + "13": { "keyName": "F3", "width": 65, "height": 70, "left": 15, - "top": 0, + "top": 50, "packetIndex": [180], "color": { "red": 0, @@ -58,12 +195,12 @@ "blue": 255 } }, - "5": { + "14": { "keyName": "F4", "width": 65, "height": 70, "left": 15, - "top": 0, + "top": 50, "packetIndex": [183], "color": { "red": 0, @@ -71,25 +208,26 @@ "blue": 255 } }, - "6": { + "15": { "keyName": "F5", "width": 65, "height": 70, "left": 55, - "top": 0, + "top": 50, "packetIndex": [186], "color": { "red": 0, "green": 255, "blue": 255 - } + }, + "spacing": [1] }, - "7": { + "16": { "keyName": "F6", "width": 65, "height": 70, "left": 15, - "top": 0, + "top": 50, "packetIndex": [189], "color": { "red": 0, @@ -97,12 +235,12 @@ "blue": 255 } }, - "8": { + "17": { "keyName": "F7", "width": 65, "height": 70, "left": 15, - "top": 0, + "top": 50, "packetIndex": [192], "color": { "red": 0, @@ -110,12 +248,12 @@ "blue": 255 } }, - "9": { + "18": { "keyName": "F8", "width": 65, "height": 70, "left": 15, - "top": 0, + "top": 50, "packetIndex": [195], "color": { "red": 0, @@ -123,25 +261,26 @@ "blue": 255 } }, - "10": { + "19": { "keyName": "F9", "width": 65, "height": 70, "left": 60, - "top": 0, + "top": 50, "packetIndex": [198], "color": { "red": 0, "green": 255, "blue": 255 - } + }, + "spacing": [1] }, - "11": { + "20": { "keyName": "F10", "width": 65, "height": 70, "left": 15, - "top": 0, + "top": 50, "packetIndex": [201], "color": { "red": 0, @@ -149,12 +288,12 @@ "blue": 255 } }, - "12": { + "21": { "keyName": "F11", "width": 65, "height": 70, "left": 15, - "top": 0, + "top": 50, "packetIndex": [204], "color": { "red": 0, @@ -162,12 +301,12 @@ "blue": 255 } }, - "13": { + "22": { "keyName": "F12", "width": 65, "height": 70, "left": 15, - "top": 0, + "top": 50, "packetIndex": [207], "color": { "red": 0, @@ -175,25 +314,26 @@ "blue": 255 } }, - "14": { + "23": { "keyName": "PrtSc", "width": 65, "height": 70, "left": 25, - "top": 0, + "top": 50, "packetIndex": [210], "color": { "red": 0, "green": 255, "blue": 255 - } + }, + "spacing": [1] }, - "15": { + "24": { "keyName": "ScrLk", "width": 65, "height": 70, "left": 15, - "top": 0, + "top": 50, "packetIndex": [213], "color": { "red": 0, @@ -201,12 +341,12 @@ "blue": 255 } }, - "16": { + "25": { "keyName": "Pause", "width": 65, "height": 70, "left": 15, - "top": 0, + "top": 50, "packetIndex": [216], "color": { "red": 0, @@ -216,9 +356,9 @@ } } }, - "1": { + "2": { "keys": { - "17": { + "26": { "keyName": "` ~", "width": 65, "height": 70, @@ -231,7 +371,7 @@ "blue": 255 } }, - "18": { + "27": { "keyName": "1", "width": 65, "height": 70, @@ -244,7 +384,7 @@ "blue": 255 } }, - "19": { + "28": { "keyName": "2", "width": 65, "height": 70, @@ -257,7 +397,7 @@ "blue": 255 } }, - "20": { + "29": { "keyName": "3", "width": 65, "height": 70, @@ -270,7 +410,7 @@ "blue": 255 } }, - "21": { + "30": { "keyName": "4", "width": 65, "height": 70, @@ -283,7 +423,7 @@ "blue": 255 } }, - "22": { + "31": { "keyName": "5", "width": 65, "height": 70, @@ -296,7 +436,7 @@ "blue": 255 } }, - "23": { + "32": { "keyName": "6", "width": 65, "height": 70, @@ -309,7 +449,7 @@ "blue": 255 } }, - "24": { + "33": { "keyName": "7", "width": 65, "height": 70, @@ -322,7 +462,7 @@ "blue": 255 } }, - "25": { + "34": { "keyName": "8", "width": 65, "height": 70, @@ -335,7 +475,7 @@ "blue": 255 } }, - "26": { + "35": { "keyName": "9", "width": 65, "height": 70, @@ -348,7 +488,7 @@ "blue": 255 } }, - "27": { + "36": { "keyName": "0", "width": 65, "height": 70, @@ -361,7 +501,7 @@ "blue": 255 } }, - "28": { + "37": { "keyName": "-", "width": 65, "height": 70, @@ -374,7 +514,7 @@ "blue": 255 } }, - "29": { + "38": { "keyName": "=", "width": 65, "height": 70, @@ -387,7 +527,7 @@ "blue": 255 } }, - "30": { + "39": { "keyName": "<---", "width": 150, "height": 70, @@ -398,9 +538,10 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide3" }, - "31": { + "40": { "keyName": "Ins", "width": 65, "height": 70, @@ -411,9 +552,10 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "spacing": [1] }, - "32": { + "41": { "keyName": "Home", "width": 65, "height": 70, @@ -426,7 +568,7 @@ "blue": 255 } }, - "33": { + "42": { "keyName": "PgUp", "width": 65, "height": 70, @@ -438,64 +580,12 @@ "green": 255, "blue": 255 } - }, - "34": { - "keyName": "Num", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [249], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "35": { - "keyName": "/", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [252], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "36": { - "keyName": "*", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [255], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "37": { - "keyName": "-", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [258], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } } } }, - "2": { + "3": { "keys": { - "38": { + "43": { "keyName": "Tab", "width": 108, "height": 70, @@ -506,9 +596,10 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide" }, - "39": { + "44": { "keyName": "Q", "width": 65, "height": 70, @@ -521,7 +612,7 @@ "blue": 0 } }, - "40": { + "45": { "keyName": "W", "width": 65, "height": 70, @@ -534,7 +625,7 @@ "blue": 0 } }, - "41": { + "46": { "keyName": "E", "width": 65, "height": 70, @@ -547,7 +638,7 @@ "blue": 0 } }, - "42": { + "47": { "keyName": "R", "width": 65, "height": 70, @@ -560,7 +651,7 @@ "blue": 255 } }, - "43": { + "48": { "keyName": "T", "width": 65, "height": 70, @@ -573,8 +664,8 @@ "blue": 255 } }, - "44": { - "keyName": "Z", + "49": { + "keyName": "Y", "width": 65, "height": 70, "left": 15, @@ -586,7 +677,7 @@ "blue": 255 } }, - "45": { + "50": { "keyName": "U", "width": 65, "height": 70, @@ -599,7 +690,7 @@ "blue": 255 } }, - "46": { + "51": { "keyName": "I", "width": 65, "height": 70, @@ -612,7 +703,7 @@ "blue": 255 } }, - "47": { + "52": { "keyName": "O", "width": 65, "height": 70, @@ -625,7 +716,7 @@ "blue": 255 } }, - "48": { + "53": { "keyName": "P", "width": 65, "height": 70, @@ -638,7 +729,7 @@ "blue": 255 } }, - "49": { + "54": { "keyName": "[ {", "width": 65, "height": 70, @@ -651,7 +742,7 @@ "blue": 255 } }, - "50": { + "55": { "keyName": "] }", "width": 65, "height": 70, @@ -664,7 +755,7 @@ "blue": 255 } }, - "51": { + "56": { "keyName": "\\ |", "width": 107, "height": 70, @@ -675,9 +766,10 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide" }, - "52": { + "57": { "keyName": "Del", "width": 65, "height": 70, @@ -688,9 +780,10 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "spacing": [1] }, - "53": { + "58": { "keyName": "End", "width": 65, "height": 70, @@ -703,7 +796,7 @@ "blue": 255 } }, - "54": { + "59": { "keyName": "PgDn", "width": 65, "height": 70, @@ -715,64 +808,12 @@ "green": 255, "blue": 255 } - }, - "55": { - "keyName": "7", - "width": 65, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [285], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "56": { - "keyName": "8", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [288], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "57": { - "keyName": "9", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [291], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "58": { - "keyName": "+", - "width": 65, - "height": 155, - "left": 15, - "top": 15, - "packetIndex": [261], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } } } }, - "3": { + "4": { "keys": { - "59": { + "60": { "keyName": "CAPS", "width": 131, "height": 70, @@ -783,9 +824,10 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide" }, - "60": { + "61": { "keyName": "A", "width": 65, "height": 70, @@ -798,7 +840,7 @@ "blue": 0 } }, - "61": { + "62": { "keyName": "S", "width": 65, "height": 70, @@ -811,7 +853,7 @@ "blue": 0 } }, - "62": { + "63": { "keyName": "D", "width": 65, "height": 70, @@ -824,7 +866,7 @@ "blue": 0 } }, - "63": { + "64": { "keyName": "F", "width": 65, "height": 70, @@ -837,7 +879,7 @@ "blue": 255 } }, - "64": { + "65": { "keyName": "G", "width": 65, "height": 70, @@ -850,7 +892,7 @@ "blue": 255 } }, - "65": { + "66": { "keyName": "H", "width": 65, "height": 70, @@ -863,7 +905,7 @@ "blue": 255 } }, - "66": { + "67": { "keyName": "J", "width": 65, "height": 70, @@ -876,7 +918,7 @@ "blue": 255 } }, - "67": { + "68": { "keyName": "K", "width": 65, "height": 70, @@ -889,7 +931,7 @@ "blue": 255 } }, - "68": { + "69": { "keyName": "L", "width": 65, "height": 70, @@ -902,7 +944,7 @@ "blue": 255 } }, - "69": { + "70": { "keyName": "; :", "width": 65, "height": 70, @@ -915,7 +957,7 @@ "blue": 255 } }, - "70": { + "71": { "keyName": "' ''", "width": 65, "height": 70, @@ -928,7 +970,7 @@ "blue": 255 } }, - "71": { + "72": { "keyName": "Enter", "width": 164, "height": 70, @@ -939,52 +981,14 @@ "red": 0, "green": 255, "blue": 255 - } - }, - "72": { - "keyName": "4", - "width": 65, - "height": 70, - "left": 275, - "top": 15, - "packetIndex": [276], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "73": { - "keyName": "5", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [279], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "74": { - "keyName": "6", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [282], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } + }, + "css": "keyboard-key wide3" } } }, - "4": { + "5": { "keys": { - "75": { + "73": { "keyName": "Shift", "width": 170, "height": 70, @@ -995,10 +999,11 @@ "red": 255, "green": 255, "blue": 0 - } + }, + "css": "keyboard-key wide3" }, - "76": { - "keyName": "Y", + "74": { + "keyName": "Z", "width": 65, "height": 70, "left": 15, @@ -1010,7 +1015,7 @@ "blue": 255 } }, - "77": { + "75": { "keyName": "X", "width": 65, "height": 70, @@ -1023,7 +1028,7 @@ "blue": 255 } }, - "78": { + "76": { "keyName": "C", "width": 65, "height": 70, @@ -1036,7 +1041,7 @@ "blue": 255 } }, - "79": { + "77": { "keyName": "V", "width": 65, "height": 70, @@ -1049,7 +1054,7 @@ "blue": 255 } }, - "80": { + "78": { "keyName": "B", "width": 65, "height": 70, @@ -1062,7 +1067,7 @@ "blue": 255 } }, - "81": { + "79": { "keyName": "N", "width": 65, "height": 70, @@ -1075,7 +1080,7 @@ "blue": 255 } }, - "82": { + "80": { "keyName": "M", "width": 65, "height": 70, @@ -1088,7 +1093,7 @@ "blue": 255 } }, - "83": { + "81": { "keyName": ", <", "width": 65, "height": 70, @@ -1101,7 +1106,7 @@ "blue": 255 } }, - "84": { + "82": { "keyName": ". >", "width": 65, "height": 70, @@ -1114,7 +1119,7 @@ "blue": 255 } }, - "85": { + "83": { "keyName": "/ ?", "width": 65, "height": 70, @@ -1127,7 +1132,7 @@ "blue": 255 } }, - "86": { + "84": { "keyName": "Shift", "width": 205, "height": 70, @@ -1138,9 +1143,10 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide3" }, - "87": { + "85": { "keyName": "↑", "width": 65, "height": 70, @@ -1151,65 +1157,14 @@ "red": 0, "green": 255, "blue": 255 - } - }, - "88": { - "keyName": "1", - "width": 65, - "height": 70, - "left": 105, - "top": 15, - "packetIndex": [267], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "89": { - "keyName": "2", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [270], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "90": { - "keyName": "3", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [273], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "91": { - "keyName": "Enter", - "width": 65, - "height": 155, - "left": 15, - "top": 15, - "packetIndex": [264], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } + }, + "spacing": [1,1] } } }, - "5": { + "6": { "keys": { - "92": { + "86": { "keyName": "Ctrl", "width": 90, "height": 70, @@ -1220,9 +1175,10 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide" }, - "93": { + "87": { "keyName": "Win", "width": 90, "height": 70, @@ -1235,7 +1191,7 @@ "blue": 255 } }, - "94": { + "88": { "keyName": "Alt", "width": 90, "height": 70, @@ -1246,9 +1202,10 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide" }, - "95": { + "89": { "keyName": "----------", "width": 455, "height": 70, @@ -1259,9 +1216,10 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "css": "keyboard-key wide7" }, - "96": { + "90": { "keyName": "Alt", "width": 90, "height": 70, @@ -1274,7 +1232,7 @@ "blue": 255 } }, - "97": { + "91": { "keyName": "Fn", "width": 90, "height": 70, @@ -1287,7 +1245,7 @@ "blue": 255 } }, - "98": { + "92": { "keyName": "Menu", "width": 90, "height": 70, @@ -1300,7 +1258,7 @@ "blue": 255 } }, - "99": { + "93": { "keyName": "Ctrl", "width": 90, "height": 70, @@ -1313,7 +1271,7 @@ "blue": 255 } }, - "100": { + "94": { "keyName": "←", "width": 65, "height": 70, @@ -1324,9 +1282,10 @@ "red": 0, "green": 255, "blue": 255 - } + }, + "spacing": [1] }, - "101": { + "95": { "keyName": "↓", "width": 65, "height": 70, @@ -1339,7 +1298,7 @@ "blue": 255 } }, - "102": { + "96": { "keyName": "→", "width": 65, "height": 70, @@ -1351,32 +1310,6 @@ "green": 255, "blue": 255 } - }, - "103": { - "keyName": "0", - "width": 145, - "height": 70, - "left": 25, - "top": 15, - "packetIndex": [294], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } - }, - "104": { - "keyName": ".", - "width": 65, - "height": 70, - "left": 15, - "top": 15, - "packetIndex": [297], - "color": { - "red": 0, - "green": 255, - "blue": 255 - } } } } diff --git a/database/macros/.gitkeep b/database/macros/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/devices/devices.go b/src/devices/devices.go index aef0256..f2cb677 100644 --- a/src/devices/devices.go +++ b/src/devices/devices.go @@ -33,6 +33,7 @@ import ( "OpenLinkHub/src/devices/k70mk2" "OpenLinkHub/src/devices/k70pro" "OpenLinkHub/src/devices/k70protkl" + "OpenLinkHub/src/devices/k70rgbtklcs" "OpenLinkHub/src/devices/katarpro" "OpenLinkHub/src/devices/katarproW" "OpenLinkHub/src/devices/katarproxt" @@ -96,6 +97,7 @@ const ( productTypeK70CoreTklWU = 112 productTypeK70CoreTklW = 113 productTypeK70ProTkl = 114 + productTypeK70RgbTkl = 115 productTypeKatarPro = 201 productTypeIronClawRgb = 202 productTypeIronClawRgbW = 203 @@ -159,7 +161,7 @@ var ( interfaceId = 0 devices = make(map[string]*Device, 0) products = make(map[string]Product, 0) - keyboards = []uint16{7127, 7165, 7166, 7110, 7083, 11024, 11015, 7109, 7091, 7036, 7037, 6985, 6997, 7019, 11009, 11010, 11028} + keyboards = []uint16{7127, 7165, 7166, 7110, 7083, 11024, 11015, 7109, 7091, 7036, 7037, 6985, 6997, 7019, 11009, 11010, 11028, 7097, 7027} mouses = []uint16{7059, 7005, 6988, 7096, 7139, 7131, 11011, 7024, 7038, 7040, 7152, 7154, 7070, 7029, 7006, 7084, 7090} pads = []uint16{7067} headsets = []uint16{2658, 2660} @@ -1528,6 +1530,23 @@ func Init() { } }(vendorId, productId, key) } + case 7097, 7027: // K70 RGB TKL + { + go func(vendorId, productId uint16, key string) { + dev := k70rgbtklcs.Init(vendorId, productId, key) + if dev == nil { + return + } + devices[dev.Serial] = &Device{ + ProductType: productTypeK70RgbTkl, + Product: dev.Product, + Serial: dev.Serial, + Firmware: dev.Firmware, + Image: "icon-keyboard.svg", + Instance: dev, + } + }(vendorId, productId, key) + } case 7166: // K55 CORE RGB { go func(vendorId, productId uint16, key string) { diff --git a/src/devices/k65pm/k65pm.go b/src/devices/k65pm/k65pm.go index afbec9c..72620e3 100644 --- a/src/devices/k65pm/k65pm.go +++ b/src/devices/k65pm/k65pm.go @@ -372,6 +372,26 @@ func (d *Device) saveDeviceProfile() { deviceProfile.Layout = d.DeviceProfile.Layout } + // Upgrade process + if d.DeviceProfile.Keyboards["default"].Version != keyboards.GetKeyboard(defaultLayout).Version { + logger.Log( + logger.Fields{ + "current": d.DeviceProfile.Keyboards["default"].Version, + "expected": keyboards.GetKeyboard(defaultLayout).Version, + "serial": d.Serial, + }, + ).Info("Upgrading keyboard profile version") + d.DeviceProfile.Keyboards["default"] = keyboards.GetKeyboard(defaultLayout) + } else { + logger.Log( + logger.Fields{ + "current": d.DeviceProfile.Keyboards["default"].Version, + "expected": keyboards.GetKeyboard(defaultLayout).Version, + "serial": d.Serial, + }, + ).Info("Keyboard profile version is OK") + } + deviceProfile.Active = d.DeviceProfile.Active deviceProfile.OriginalBrightness = d.DeviceProfile.OriginalBrightness deviceProfile.Brightness = d.DeviceProfile.Brightness diff --git a/src/devices/k70rgbtklcs/k70rgbtklcs.go b/src/devices/k70rgbtklcs/k70rgbtklcs.go new file mode 100644 index 0000000..6ba0a8d --- /dev/null +++ b/src/devices/k70rgbtklcs/k70rgbtklcs.go @@ -0,0 +1,1324 @@ +package k70rgbtklcs + +// Package: CORSAIR K70 RGB TKL CHAMPION SERIES +// This is the primary package for CORSAIR K70 RGB TKL CHAMPION SERIES. +// All device actions are controlled from this package. +// Author: Nikola Jurkovic +// License: GPL-3.0 or later + +import ( + "OpenLinkHub/src/common" + "OpenLinkHub/src/config" + "OpenLinkHub/src/keyboards" + "OpenLinkHub/src/logger" + "OpenLinkHub/src/rgb" + "OpenLinkHub/src/temperatures" + "encoding/binary" + "encoding/json" + "fmt" + "github.com/sstallion/go-hid" + "os" + "regexp" + "slices" + "strings" + "sync" + "time" +) + +// DeviceProfile struct contains all device profile +type DeviceProfile struct { + Active bool + Path string + Product string + Serial string + LCDMode uint8 + LCDRotation uint8 + Brightness uint8 + RGBProfile string + Label string + Layout string + Keyboards map[string]*keyboards.Keyboard + Profile string + BrightnessLevel uint16 + Profiles []string +} + +type Device struct { + Debug bool + dev *hid.Device + listener *hid.Device + Manufacturer string `json:"manufacturer"` + Product string `json:"product"` + Serial string `json:"serial"` + Firmware string `json:"firmware"` + activeRgb *rgb.ActiveRGB + UserProfiles map[string]*DeviceProfile `json:"userProfiles"` + Devices map[int]string `json:"devices"` + DeviceProfile *DeviceProfile + OriginalProfile *DeviceProfile + Template string + VendorId uint16 + ProductId uint16 + Brightness map[int]string + LEDChannels int + CpuTemp float32 + GpuTemp float32 + Layouts []string + Rgb *rgb.RGB + Exit bool + timer *time.Ticker + timerKeepAlive *time.Ticker + autoRefreshChan chan struct{} + keepAliveChan chan struct{} + mutex sync.Mutex + UIKeyboard string + UIKeyboardRow string +} + +var ( + pwd = "" + cmdSoftwareMode = []byte{0x01, 0x03, 0x00, 0x02} + cmdHardwareMode = []byte{0x01, 0x03, 0x00, 0x01} + cmdActivateLed = []byte{0x0d, 0x01, 0x22} + cmdBrightness = []byte{0x01, 0x02, 0x00} + cmdGetFirmware = []byte{0x02, 0x13} + dataTypeSetColor = []byte{0x12, 0x00} + dataTypeSubColor = []byte{0x07, 0x00} + cmdWriteColor = []byte{0x06, 0x01} + cmdKeepAlive = []byte{0x12} + deviceRefreshInterval = 1000 + deviceKeepAlive = 20000 + transferTimeout = 500 + bufferSize = 1024 + bufferSizeWrite = bufferSize + 1 + headerSize = 2 + headerWriteSize = 4 + maxBufferSizePerRequest = 1021 + colorPacketLength = 389 + keyboardKey = "k70rgbtklcs-default" + defaultLayout = "k70rgbtklcs-default-US" +) + +func Init(vendorId, productId uint16, key string) *Device { + // Set global working directory + pwd = config.GetConfig().ConfigPath + + dev, err := hid.OpenPath(key) + if err != nil { + logger.Log(logger.Fields{"error": err, "vendorId": vendorId, "productId": productId}).Error("Unable to open HID device") + return nil + } + + // Init new struct with HID device + d := &Device{ + dev: dev, + Template: "k70rgbtklcs.html", + VendorId: vendorId, + ProductId: productId, + Brightness: map[int]string{ + 0: "RGB Profile", + 1: "33 %", + 2: "66 %", + 3: "100 %", + }, + Product: "K70 RGB TKL CS", + LEDChannels: 130, + Layouts: keyboards.GetLayouts(keyboardKey), + autoRefreshChan: make(chan struct{}), + keepAliveChan: make(chan struct{}), + UIKeyboard: "keyboard-7", + UIKeyboardRow: "keyboard-row-20", + } + + d.getDebugMode() // Debug mode + d.getManufacturer() // Manufacturer + d.getSerial() // Serial + d.loadRgb() // Load RGB + d.setSoftwareMode() // Activate software mode + d.initLeds() // Init LED ports + d.getDeviceFirmware() // Firmware + d.loadDeviceProfiles() // Load all device profiles + d.saveDeviceProfile() // Save profile + d.setAutoRefresh() // Set auto device refresh + d.setKeepAlive() // Keepalive + d.setDeviceColor() // Device color + d.setBrightnessLevel() // Brightness + d.controlListener() // Control listener + logger.Log(logger.Fields{"serial": d.Serial, "product": d.Product}).Info("Device successfully initialized") + return d +} + +// GetRgbProfiles will return RGB profiles for a target device +func (d *Device) GetRgbProfiles() interface{} { + return d.Rgb +} + +// Stop will stop all device operations and switch a device back to hardware mode +func (d *Device) Stop() { + d.Exit = true + logger.Log(logger.Fields{"serial": d.Serial, "product": d.Product}).Info("Stopping device...") + if d.activeRgb != nil { + d.activeRgb.Stop() + } + + d.timer.Stop() + d.timerKeepAlive.Stop() + var once sync.Once + go func() { + once.Do(func() { + if d.autoRefreshChan != nil { + close(d.autoRefreshChan) + } + close(d.keepAliveChan) + }) + }() + + d.setHardwareMode() + if d.dev != nil { + err := d.dev.Close() + if err != nil { + logger.Log(logger.Fields{"error": err}).Error("Unable to close HID device") + } + } + logger.Log(logger.Fields{"serial": d.Serial, "product": d.Product}).Info("Device stopped") +} + +// loadRgb will load RGB file if found, or create the default. +func (d *Device) loadRgb() { + rgbDirectory := pwd + "/database/rgb/" + rgbFilename := rgbDirectory + d.Serial + ".json" + + // Check if filename has .json extension + if !common.IsValidExtension(rgbFilename, ".json") { + return + } + + if !common.FileExists(rgbFilename) { + profile := rgb.GetRGB() + profile.Device = d.Product + + // Convert to JSON + buffer, err := json.MarshalIndent(profile, "", " ") + if err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial, "location": rgbFilename}).Warn("Unable to encode RGB json") + return + } + + // Create profile filename + file, err := os.Create(rgbFilename) + if err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial, "location": rgbFilename}).Warn("Unable to create RGB json file") + return + } + + // Write JSON buffer to file + _, err = file.Write(buffer) + if err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial, "location": rgbFilename}).Warn("Unable to write to RGB json file") + return + } + + // Close file + err = file.Close() + if err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial, "location": rgbFilename}).Warn("Unable to close RGB json file") + return + } + } + + file, err := os.Open(rgbFilename) + if err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial, "location": rgbFilename}).Warn("Unable to load RGB") + return + } + if err = json.NewDecoder(file).Decode(&d.Rgb); err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial, "location": rgbFilename}).Warn("Unable to decode profile") + return + } + err = file.Close() + if err != nil { + logger.Log(logger.Fields{"location": rgbFilename, "serial": d.Serial}).Warn("Failed to close file handle") + } +} + +// GetRgbProfile will return rgb.Profile struct +func (d *Device) GetRgbProfile(profile string) *rgb.Profile { + if d.Rgb == nil { + return nil + } + + if val, ok := d.Rgb.Profiles[profile]; ok { + return &val + } + return nil +} + +// GetDeviceTemplate will return device template name +func (d *Device) GetDeviceTemplate() string { + return d.Template +} + +// getManufacturer will return device manufacturer +func (d *Device) getDebugMode() { + d.Debug = config.GetConfig().Debug +} + +// getManufacturer will return device manufacturer +func (d *Device) getManufacturer() { + manufacturer, err := d.dev.GetMfrStr() + if err != nil { + logger.Log(logger.Fields{"error": err}).Fatal("Unable to get manufacturer") + } + d.Manufacturer = manufacturer +} + +// getProduct will return device name +func (d *Device) getProduct() { + product, err := d.dev.GetProductStr() + if err != nil { + logger.Log(logger.Fields{"error": err}).Fatal("Unable to get product") + } + d.Product = product +} + +// getSerial will return device serial number +func (d *Device) getSerial() { + serial, err := d.dev.GetSerialNbr() + if err != nil { + logger.Log(logger.Fields{"error": err}).Fatal("Unable to get device serial number") + } + d.Serial = serial +} + +// setHardwareMode will switch a device to hardware mode +func (d *Device) setHardwareMode() { + _, err := d.transfer(cmdHardwareMode, nil) + if err != nil { + logger.Log(logger.Fields{"error": err}).Fatal("Unable to change device mode") + } +} + +// setSoftwareMode will switch a device to software mode +func (d *Device) setSoftwareMode() { + _, err := d.transfer(cmdSoftwareMode, nil) + if err != nil { + logger.Log(logger.Fields{"error": err}).Fatal("Unable to change device mode") + } +} + +// getDeviceFirmware will return a device firmware version out as string +func (d *Device) getDeviceFirmware() { + fw, err := d.transfer( + cmdGetFirmware, + nil, + ) + if err != nil { + logger.Log(logger.Fields{"error": err}).Fatal("Unable to write to a device") + } + + v1, v2, v3 := int(fw[3]), int(fw[4]), int(binary.LittleEndian.Uint16(fw[5:7])) + d.Firmware = fmt.Sprintf("%d.%d.%d", v1, v2, v3) +} + +// initLeds will initialize LED ports +func (d *Device) initLeds() { + _, err := d.transfer(cmdActivateLed, nil) + if err != nil { + logger.Log(logger.Fields{"error": err}).Fatal("Unable to change device mode") + } + // We need to wait around 500 ms for physical ports to re-initialize + // After that we can grab any new connected / disconnected device values + time.Sleep(time.Duration(transferTimeout) * time.Millisecond) +} + +// saveDeviceProfile will save device profile for persistent configuration +func (d *Device) saveDeviceProfile() { + profilePath := pwd + "/database/profiles/" + d.Serial + ".json" + keyboardMap := make(map[string]*keyboards.Keyboard, 0) + + deviceProfile := &DeviceProfile{ + Product: d.Product, + Serial: d.Serial, + Path: profilePath, + } + + // First save, assign saved profile to a device + if d.DeviceProfile == nil { + // RGB, Label + deviceProfile.RGBProfile = "keyboard" + deviceProfile.Label = "Keyboard" + deviceProfile.Active = true + keyboardMap["default"] = keyboards.GetKeyboard(defaultLayout) + deviceProfile.Keyboards = keyboardMap + deviceProfile.Profile = "default" + deviceProfile.Profiles = []string{"default"} + deviceProfile.BrightnessLevel = 1000 + deviceProfile.Layout = "US" + } else { + if len(d.DeviceProfile.Layout) == 0 { + deviceProfile.Layout = "US" + } else { + deviceProfile.Layout = d.DeviceProfile.Layout + } + + // Upgrade process + if d.DeviceProfile.Keyboards["default"].Version != keyboards.GetKeyboard(defaultLayout).Version { + logger.Log( + logger.Fields{ + "current": d.DeviceProfile.Keyboards["default"].Version, + "expected": keyboards.GetKeyboard(defaultLayout).Version, + "serial": d.Serial, + }, + ).Info("Upgrading keyboard profile version") + d.DeviceProfile.Keyboards["default"] = keyboards.GetKeyboard(defaultLayout) + } else { + logger.Log( + logger.Fields{ + "current": d.DeviceProfile.Keyboards["default"].Version, + "expected": keyboards.GetKeyboard(defaultLayout).Version, + "serial": d.Serial, + }, + ).Info("Keyboard profile version is OK") + } + deviceProfile.Active = d.DeviceProfile.Active + deviceProfile.Brightness = d.DeviceProfile.Brightness + deviceProfile.RGBProfile = d.DeviceProfile.RGBProfile + deviceProfile.Label = d.DeviceProfile.Label + deviceProfile.Profile = d.DeviceProfile.Profile + deviceProfile.Profiles = d.DeviceProfile.Profiles + deviceProfile.Keyboards = d.DeviceProfile.Keyboards + deviceProfile.BrightnessLevel = d.DeviceProfile.BrightnessLevel + if len(d.DeviceProfile.Path) < 1 { + deviceProfile.Path = profilePath + d.DeviceProfile.Path = profilePath + } else { + deviceProfile.Path = d.DeviceProfile.Path + } + deviceProfile.LCDMode = d.DeviceProfile.LCDMode + deviceProfile.LCDRotation = d.DeviceProfile.LCDRotation + } + + // Convert to JSON + buffer, err := json.MarshalIndent(deviceProfile, "", " ") + if err != nil { + logger.Log(logger.Fields{"error": err}).Error("Unable to convert to json format") + return + } + + // Create profile filename + file, fileErr := os.Create(deviceProfile.Path) + if fileErr != nil { + logger.Log(logger.Fields{"error": err, "location": deviceProfile.Path}).Error("Unable to create new device profile") + return + } + + // Write JSON buffer to file + _, err = file.Write(buffer) + if err != nil { + logger.Log(logger.Fields{"error": err, "location": deviceProfile.Path}).Error("Unable to write data") + return + } + + // Close file + err = file.Close() + if err != nil { + logger.Log(logger.Fields{"error": err, "location": deviceProfile.Path}).Fatal("Unable to close file handle") + } + + d.loadDeviceProfiles() // Reload +} + +// loadDeviceProfiles will load custom user profiles +func (d *Device) loadDeviceProfiles() { + profileList := make(map[string]*DeviceProfile, 0) + userProfileDirectory := pwd + "/database/profiles/" + + files, err := os.ReadDir(userProfileDirectory) + if err != nil { + logger.Log(logger.Fields{"error": err, "location": userProfileDirectory, "serial": d.Serial}).Fatal("Unable to read content of a folder") + } + + for _, fi := range files { + pf := &DeviceProfile{} + if fi.IsDir() { + continue // Exclude folders if any + } + + // Define a full path of filename + profileLocation := userProfileDirectory + fi.Name() + + // Check if filename has .json extension + if !common.IsValidExtension(profileLocation, ".json") { + continue + } + + fileName := strings.Split(fi.Name(), ".")[0] + if m, _ := regexp.MatchString("^[a-zA-Z0-9-]+$", fileName); !m { + continue + } + + fileSerial := "" + if strings.Contains(fileName, "-") { + fileSerial = strings.Split(fileName, "-")[0] + } else { + fileSerial = fileName + } + + if fileSerial != d.Serial { + continue + } + + file, err := os.Open(profileLocation) + if err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial, "location": profileLocation}).Warn("Unable to load profile") + continue + } + if err = json.NewDecoder(file).Decode(pf); err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial, "location": profileLocation}).Warn("Unable to decode profile") + continue + } + err = file.Close() + if err != nil { + logger.Log(logger.Fields{"location": profileLocation, "serial": d.Serial}).Warn("Failed to close file handle") + } + if pf.Serial == d.Serial { + if fileName == d.Serial { + profileList["default"] = pf + } else { + name := strings.Split(fileName, "-")[1] + profileList[name] = pf + } + logger.Log(logger.Fields{"location": profileLocation, "serial": d.Serial}).Info("Loaded custom user profile") + } + } + d.UserProfiles = profileList + d.getDeviceProfile() +} + +// getDeviceProfile will load persistent device configuration +func (d *Device) getDeviceProfile() { + if len(d.UserProfiles) == 0 { + logger.Log(logger.Fields{"serial": d.Serial}).Warn("No profile found for device. Probably initial start") + } else { + for _, pf := range d.UserProfiles { + if pf.Active { + d.DeviceProfile = pf + } + } + } +} + +// keepAlive will keep a device alive +func (d *Device) keepAlive() { + if d.Exit { + return + } + _, err := d.transfer(cmdKeepAlive, nil) + if err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial}).Error("Unable to write to a device") + } +} + +// setAutoRefresh will refresh device data +func (d *Device) setKeepAlive() { + d.timerKeepAlive = time.NewTicker(time.Duration(deviceKeepAlive) * time.Millisecond) + go func() { + for { + select { + case <-d.timerKeepAlive.C: + d.keepAlive() + case <-d.keepAliveChan: + d.timerKeepAlive.Stop() + return + } + } + }() +} + +// setAutoRefresh will refresh device data +func (d *Device) setAutoRefresh() { + d.timer = time.NewTicker(time.Duration(deviceRefreshInterval) * time.Millisecond) + go func() { + for { + select { + case <-d.timer.C: + if d.Exit { + return + } + d.setTemperatures() + case <-d.autoRefreshChan: + d.timer.Stop() + return + } + } + }() +} + +// setCpuTemperature will store current CPU temperature +func (d *Device) setTemperatures() { + d.CpuTemp = temperatures.GetCpuTemperature() + d.GpuTemp = temperatures.GetGpuTemperature() +} + +// UpdateDeviceLabel will set / update device label +func (d *Device) UpdateDeviceLabel(_ int, label string) uint8 { + d.mutex.Lock() + defer d.mutex.Unlock() + + d.DeviceProfile.Label = label + d.saveDeviceProfile() + return 1 +} + +// saveRgbProfile will save rgb profile data +func (d *Device) saveRgbProfile() { + rgbDirectory := pwd + "/database/rgb/" + rgbFilename := rgbDirectory + d.Serial + ".json" + if common.FileExists(rgbFilename) { + buffer, err := json.MarshalIndent(d.Rgb, "", " ") + if err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial, "location": rgbFilename}).Warn("Unable to encode RGB json") + return + } + + // Create profile filename + file, err := os.Create(rgbFilename) + if err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial, "location": rgbFilename}).Warn("Unable to create RGB json file") + return + } + + // Write JSON buffer to file + _, err = file.Write(buffer) + if err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial, "location": rgbFilename}).Warn("Unable to write to RGB json file") + return + } + + // Close file + err = file.Close() + if err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial, "location": rgbFilename}).Warn("Unable to close RGB json file") + return + } + } +} + +// UpdateRgbProfileData will update RGB profile data +func (d *Device) UpdateRgbProfileData(profileName string, profile rgb.Profile) uint8 { + if d.GetRgbProfile(profileName) == nil { + logger.Log(logger.Fields{"serial": d.Serial, "profile": profile}).Warn("Non-existing RGB profile") + return 0 + } + + pf := d.GetRgbProfile(profileName) + profile.StartColor.Brightness = pf.StartColor.Brightness + profile.EndColor.Brightness = pf.EndColor.Brightness + pf.StartColor = profile.StartColor + pf.EndColor = profile.EndColor + pf.Speed = profile.Speed + + d.Rgb.Profiles[profileName] = *pf + d.saveRgbProfile() + if d.activeRgb != nil { + d.activeRgb.Exit <- true // Exit current RGB mode + d.activeRgb = nil + } + d.setDeviceColor() // Restart RGB + return 1 +} + +// UpdateRgbProfile will update device RGB profile +func (d *Device) UpdateRgbProfile(_ int, profile string) uint8 { + if d.GetRgbProfile(profile) == nil { + logger.Log(logger.Fields{"serial": d.Serial, "profile": profile}).Warn("Non-existing RGB profile") + return 0 + } + d.DeviceProfile.RGBProfile = profile // Set profile + d.saveDeviceProfile() // Save profile + if d.activeRgb != nil { + d.activeRgb.Exit <- true // Exit current RGB mode + d.activeRgb = nil + } + d.setDeviceColor() // Restart RGB + return 1 + +} + +// ChangeDeviceBrightness will change device brightness +func (d *Device) ChangeDeviceBrightness(mode uint8) uint8 { + d.DeviceProfile.Brightness = mode + d.saveDeviceProfile() + if d.activeRgb != nil { + d.activeRgb.Exit <- true // Exit current RGB mode + d.activeRgb = nil + } + d.setDeviceColor() // Restart RGB + return 1 +} + +// ChangeDeviceProfile will change device profile +func (d *Device) ChangeDeviceProfile(profileName string) uint8 { + if profile, ok := d.UserProfiles[profileName]; ok { + currentProfile := d.DeviceProfile + currentProfile.Active = false + d.DeviceProfile = currentProfile + d.saveDeviceProfile() + + // RGB reset + if d.activeRgb != nil { + d.activeRgb.Exit <- true // Exit current RGB mode + d.activeRgb = nil + } + + newProfile := profile + newProfile.Active = true + d.DeviceProfile = newProfile + d.saveDeviceProfile() + d.setDeviceColor() + return 1 + } + return 0 +} + +// ChangeKeyboardLayout will change keyboard layout +func (d *Device) ChangeKeyboardLayout(layout string) uint8 { + layouts := keyboards.GetLayouts(keyboardKey) + if len(layouts) < 1 { + return 2 + } + + if slices.Contains(layouts, layout) { + if d.DeviceProfile != nil { + if _, ok := d.DeviceProfile.Keyboards["default"]; ok { + layoutKey := fmt.Sprintf("%s-%s", keyboardKey, layout) + keyboardLayout := keyboards.GetKeyboard(layoutKey) + if keyboardLayout == nil { + logger.Log(logger.Fields{"serial": d.Serial}).Warn("Trying to apply non-existing keyboard layout") + return 2 + } + + d.DeviceProfile.Keyboards["default"] = keyboardLayout + d.DeviceProfile.Layout = layout + d.saveDeviceProfile() + + // RGB reset + if d.activeRgb != nil { + d.activeRgb.Exit <- true // Exit current RGB mode + d.activeRgb = nil + } + d.setDeviceColor() + return 1 + } + } else { + logger.Log(logger.Fields{"serial": d.Serial}).Warn("DeviceProfile is null") + return 0 + } + } else { + logger.Log(logger.Fields{"serial": d.Serial}).Warn("No such layout") + return 2 + } + return 0 +} + +// getCurrentKeyboard will return current active keyboard +func (d *Device) getCurrentKeyboard() *keyboards.Keyboard { + if keyboard, ok := d.DeviceProfile.Keyboards[d.DeviceProfile.Profile]; ok { + return keyboard + } + return nil +} + +// SaveDeviceProfile will save a new keyboard profile +func (d *Device) SaveDeviceProfile(profileName string, new bool) uint8 { + if new { + if d.DeviceProfile == nil { + return 0 + } + + if slices.Contains(d.DeviceProfile.Profiles, profileName) { + return 2 + } + + if _, ok := d.DeviceProfile.Keyboards[profileName]; ok { + return 2 + } + + d.DeviceProfile.Profiles = append(d.DeviceProfile.Profiles, profileName) + d.DeviceProfile.Keyboards[profileName] = d.getCurrentKeyboard() + d.saveDeviceProfile() + return 1 + } else { + d.saveDeviceProfile() + return 1 + } +} + +// UpdateKeyboardProfile will change keyboard profile +func (d *Device) UpdateKeyboardProfile(profileName string) uint8 { + if d.DeviceProfile == nil { + return 0 + } + + if !slices.Contains(d.DeviceProfile.Profiles, profileName) { + return 2 + } + + if _, ok := d.DeviceProfile.Keyboards[profileName]; !ok { + return 2 + } + + d.DeviceProfile.Profile = profileName + d.saveDeviceProfile() + // RGB reset + if d.activeRgb != nil { + d.activeRgb.Exit <- true // Exit current RGB mode + d.activeRgb = nil + } + d.setDeviceColor() + return 1 +} + +// DeleteKeyboardProfile will delete keyboard profile +func (d *Device) DeleteKeyboardProfile(profileName string) uint8 { + if d.DeviceProfile == nil { + return 0 + } + + if profileName == "default" { + return 3 + } + + if !slices.Contains(d.DeviceProfile.Profiles, profileName) { + return 2 + } + + if _, ok := d.DeviceProfile.Keyboards[profileName]; !ok { + return 2 + } + + index := common.IndexOfString(d.DeviceProfile.Profiles, profileName) + if index < 0 { + return 0 + } + + d.DeviceProfile.Profile = "default" + d.DeviceProfile.Profiles = append(d.DeviceProfile.Profiles[:index], d.DeviceProfile.Profiles[index+1:]...) + delete(d.DeviceProfile.Keyboards, profileName) + + d.saveDeviceProfile() + // RGB reset + if d.activeRgb != nil { + d.activeRgb.Exit <- true // Exit current RGB mode + d.activeRgb = nil + } + d.setDeviceColor() + return 1 +} + +// SaveUserProfile will generate a new user profile configuration and save it to a file +func (d *Device) SaveUserProfile(profileName string) uint8 { + if d.DeviceProfile != nil { + profilePath := pwd + "/database/profiles/" + d.Serial + "-" + profileName + ".json" + + newProfile := d.DeviceProfile + newProfile.Path = profilePath + newProfile.Active = false + + buffer, err := json.Marshal(newProfile) + if err != nil { + logger.Log(logger.Fields{"error": err}).Error("Unable to convert to json format") + return 0 + } + + // Create profile filename + file, err := os.Create(profilePath) + if err != nil { + logger.Log(logger.Fields{"error": err, "location": newProfile.Path}).Error("Unable to create new device profile") + return 0 + } + + _, err = file.Write(buffer) + if err != nil { + logger.Log(logger.Fields{"error": err, "location": newProfile.Path}).Error("Unable to write data") + return 0 + } + + err = file.Close() + if err != nil { + logger.Log(logger.Fields{"error": err, "location": newProfile.Path}).Error("Unable to close file handle") + return 0 + } + d.loadDeviceProfiles() + return 1 + } + return 0 +} + +// UpdateDeviceColor will update device color based on selected input +func (d *Device) UpdateDeviceColor(keyId, keyOption int, color rgb.Color) uint8 { + switch keyOption { + case 0: + { + for rowIndex, row := range d.DeviceProfile.Keyboards[d.DeviceProfile.Profile].Row { + for keyIndex, key := range row.Keys { + if keyIndex == keyId { + key.Color = rgb.Color{ + Red: color.Red, + Green: color.Green, + Blue: color.Blue, + Brightness: 0, + } + d.DeviceProfile.Keyboards[d.DeviceProfile.Profile].Row[rowIndex].Keys[keyIndex] = key + if d.activeRgb != nil { + d.activeRgb.Exit <- true // Exit current RGB mode + d.activeRgb = nil + } + d.setDeviceColor() // Restart RGB + return 1 + } + } + } + } + case 1: + { + rowId := -1 + for rowIndex, row := range d.DeviceProfile.Keyboards[d.DeviceProfile.Profile].Row { + for keyIndex := range row.Keys { + if keyIndex == keyId { + rowId = rowIndex + break + } + } + } + + if rowId < 0 { + return 0 + } + + for keyIndex, key := range d.DeviceProfile.Keyboards[d.DeviceProfile.Profile].Row[rowId].Keys { + key.Color = rgb.Color{ + Red: color.Red, + Green: color.Green, + Blue: color.Blue, + Brightness: 0, + } + d.DeviceProfile.Keyboards[d.DeviceProfile.Profile].Row[rowId].Keys[keyIndex] = key + } + if d.activeRgb != nil { + d.activeRgb.Exit <- true // Exit current RGB mode + d.activeRgb = nil + } + d.setDeviceColor() // Restart RGB + return 1 + } + case 2: + { + for rowIndex, row := range d.DeviceProfile.Keyboards[d.DeviceProfile.Profile].Row { + for keyIndex, key := range row.Keys { + key.Color = rgb.Color{ + Red: color.Red, + Green: color.Green, + Blue: color.Blue, + Brightness: 0, + } + d.DeviceProfile.Keyboards[d.DeviceProfile.Profile].Row[rowIndex].Keys[keyIndex] = key + } + } + if d.activeRgb != nil { + d.activeRgb.Exit <- true // Exit current RGB mode + d.activeRgb = nil + } + d.setDeviceColor() // Restart RGB + return 1 + } + } + return 0 +} + +// setBrightnessLevel will set global brightness level +func (d *Device) setBrightnessLevel() { + if d.Exit { + return + } + + if d.DeviceProfile != nil { + buf := make([]byte, 2) + binary.LittleEndian.PutUint16(buf[0:2], d.DeviceProfile.BrightnessLevel) + _, err := d.transfer(cmdBrightness, buf) + if err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial}).Warn("Unable to change brightness") + } + } +} + +// setDeviceColor will activate and set device RGB +func (d *Device) setDeviceColor() { + // Reset + reset := map[int][]byte{} + var buffer []byte + var buf = make([]byte, colorPacketLength) + + // Reset all channels + color := &rgb.Color{ + Red: 0, + Green: 0, + Blue: 0, + Brightness: 0, + } + + for i := 0; i < d.LEDChannels; i++ { + reset[i] = []byte{ + byte(color.Red), + byte(color.Green), + byte(color.Blue), + } + } + + buffer = rgb.SetColor(reset) + d.writeColor(buffer) + + if d.DeviceProfile == nil { + logger.Log(logger.Fields{"serial": d.Serial}).Error("Unable to set color. DeviceProfile is null!") + return + } + + if d.DeviceProfile.RGBProfile == "keyboard" { + if _, ok := d.DeviceProfile.Keyboards[d.DeviceProfile.Profile]; ok { + for _, rows := range d.DeviceProfile.Keyboards[d.DeviceProfile.Profile].Row { + for _, keys := range rows.Keys { + for _, packetIndex := range keys.PacketIndex { + buf[packetIndex] = byte(keys.Color.Red) + buf[packetIndex+1] = byte(keys.Color.Green) + buf[packetIndex+2] = byte(keys.Color.Blue) + } + } + } + d.writeColor(buf) // Write color once + return + } else { + logger.Log(logger.Fields{"serial": d.Serial}).Error("Unable to set color. Unknown keyboard") + return + } + } + + if d.DeviceProfile.RGBProfile == "static" { + profile := d.GetRgbProfile("static") + if d.DeviceProfile.Brightness != 0 { + profile.StartColor.Brightness = rgb.GetBrightnessValue(d.DeviceProfile.Brightness) + } + + profileColor := rgb.ModifyBrightness(profile.StartColor) + for _, rows := range d.DeviceProfile.Keyboards[d.DeviceProfile.Profile].Row { + for _, keys := range rows.Keys { + for _, packetIndex := range keys.PacketIndex { + buf[packetIndex] = byte(profileColor.Red) + buf[packetIndex+1] = byte(profileColor.Green) + buf[packetIndex+2] = byte(profileColor.Blue) + } + } + } + d.writeColor(buf) // Write color once + return + } + + go func(lightChannels int) { + startTime := time.Now() + d.activeRgb = rgb.Exit() + + // Generate random colors + d.activeRgb.RGBStartColor = rgb.GenerateRandomColor(1) + d.activeRgb.RGBEndColor = rgb.GenerateRandomColor(1) + + for { + select { + case <-d.activeRgb.Exit: + return + default: + buff := make([]byte, 0) + var buf = make([]byte, colorPacketLength) + + rgbCustomColor := true + profile := d.GetRgbProfile(d.DeviceProfile.RGBProfile) + if profile == nil { + for i := 0; i < d.LEDChannels; i++ { + buff = append(buff, []byte{0, 0, 0}...) + } + logger.Log(logger.Fields{"profile": d.DeviceProfile.RGBProfile, "serial": d.Serial}).Warn("No such RGB profile found") + continue + } + rgbModeSpeed := common.FClamp(profile.Speed, 0.1, 10) + // Check if we have custom colors + if (rgb.Color{}) == profile.StartColor || (rgb.Color{}) == profile.EndColor { + rgbCustomColor = false + } + + r := rgb.New( + d.LEDChannels, + rgbModeSpeed, + nil, + nil, + profile.Brightness, + common.Clamp(profile.Smoothness, 1, 100), + time.Duration(rgbModeSpeed)*time.Second, + rgbCustomColor, + ) + + if rgbCustomColor { + r.RGBStartColor = &profile.StartColor + r.RGBEndColor = &profile.EndColor + } else { + r.RGBStartColor = d.activeRgb.RGBStartColor + r.RGBEndColor = d.activeRgb.RGBEndColor + } + + // Brightness + if d.DeviceProfile.Brightness > 0 { + r.RGBBrightness = rgb.GetBrightnessValue(d.DeviceProfile.Brightness) + r.RGBStartColor.Brightness = r.RGBBrightness + r.RGBEndColor.Brightness = r.RGBBrightness + } + + switch d.DeviceProfile.RGBProfile { + case "off": + { + for n := 0; n < d.LEDChannels; n++ { + buff = append(buff, []byte{0, 0, 0}...) + } + } + case "rainbow": + { + r.Rainbow(startTime) + buff = append(buff, r.Output...) + } + case "watercolor": + { + r.Watercolor(startTime) + buff = append(buff, r.Output...) + } + case "cpu-temperature": + { + r.MinTemp = profile.MinTemp + r.MaxTemp = profile.MaxTemp + r.Temperature(float64(d.CpuTemp)) + buff = append(buff, r.Output...) + } + case "gpu-temperature": + { + r.MinTemp = profile.MinTemp + r.MaxTemp = profile.MaxTemp + r.Temperature(float64(d.GpuTemp)) + buff = append(buff, r.Output...) + } + case "colorpulse": + { + r.Colorpulse(&startTime) + buff = append(buff, r.Output...) + } + case "static": + { + r.Static() + buff = append(buff, r.Output...) + } + case "rotator": + { + r.Rotator(&startTime) + buff = append(buff, r.Output...) + } + case "wave": + { + r.Wave(&startTime) + buff = append(buff, r.Output...) + } + case "storm": + { + r.Storm() + buff = append(buff, r.Output...) + } + case "flickering": + { + r.Flickering(&startTime) + buff = append(buff, r.Output...) + } + case "colorshift": + { + r.Colorshift(&startTime, d.activeRgb) + buff = append(buff, r.Output...) + } + case "circleshift": + { + r.CircleShift(&startTime) + buff = append(buff, r.Output...) + } + case "circle": + { + r.Circle(&startTime) + buff = append(buff, r.Output...) + } + case "spinner": + { + r.Spinner(&startTime) + buff = append(buff, r.Output...) + } + case "colorwarp": + { + r.Colorwarp(&startTime, d.activeRgb) + buff = append(buff, r.Output...) + } + } + for _, rows := range d.DeviceProfile.Keyboards[d.DeviceProfile.Profile].Row { + for _, keys := range rows.Keys { + for _, packetIndex := range keys.PacketIndex { + buf[packetIndex] = r.Output[packetIndex] + buf[packetIndex+1] = r.Output[packetIndex+1] + buf[packetIndex+2] = r.Output[packetIndex+2] + } + } + } + + // Send it + d.writeColor(buf) + time.Sleep(20 * time.Millisecond) + } + } + }(d.LEDChannels) +} + +// writeColor will write data to the device with a specific endpoint. +// writeColor does not require endpoint closing and opening like normal Write requires. +// Endpoint is open only once. Once the endpoint is open, color can be sent continuously. +func (d *Device) writeColor(data []byte) { + if d.Exit { + return + } + + buffer := make([]byte, len(dataTypeSetColor)+len(data)+headerWriteSize) + binary.LittleEndian.PutUint16(buffer[0:2], uint16(len(data))) + copy(buffer[headerWriteSize:headerWriteSize+len(dataTypeSetColor)], dataTypeSetColor) + copy(buffer[headerWriteSize+len(dataTypeSetColor):], data) + + // Split packet into chunks + chunks := common.ProcessMultiChunkPacket(buffer, maxBufferSizePerRequest) + for i, chunk := range chunks { + if i == 0 { + // Initial packet is using cmdWriteColor + _, err := d.transfer(cmdWriteColor, chunk) + if err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial}).Error("Unable to write to color endpoint") + } + } else { + // Chunks don't use cmdWriteColor, they use static dataTypeSubColor + _, err := d.transfer(dataTypeSubColor, chunk) + if err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial}).Error("Unable to write to endpoint") + } + } + } +} + +// transfer will send data to a device and retrieve device output +func (d *Device) transfer(endpoint, buffer []byte) ([]byte, error) { + // Packet control, mandatory for this device + d.mutex.Lock() + defer d.mutex.Unlock() + + // Create write buffer + bufferW := make([]byte, bufferSizeWrite) + bufferW[1] = 0x08 + endpointHeaderPosition := bufferW[headerSize : headerSize+len(endpoint)] + copy(endpointHeaderPosition, endpoint) + if len(buffer) > 0 { + copy(bufferW[headerSize+len(endpoint):headerSize+len(endpoint)+len(buffer)], buffer) + } + + // Create read buffer + bufferR := make([]byte, bufferSize) + + // Send command to a device + if _, err := d.dev.Write(bufferW); err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial}).Error("Unable to write to a device") + return nil, err + } + + // Get data from a device + if _, err := d.dev.Read(bufferR); err != nil { + logger.Log(logger.Fields{"error": err, "serial": d.Serial}).Error("Unable to read data from device") + return nil, err + } + + return bufferR, nil +} + +// getListenerData will listen for keyboard events and return data on success or nil on failure. +// ReadWithTimeout is mandatory due to the nature of listening for events +func (d *Device) getListenerData() []byte { + data := make([]byte, bufferSize) + n, err := d.listener.ReadWithTimeout(data, 100*time.Millisecond) + if err != nil || n == 0 { + return nil + } + return data +} + +// controlListener will listen for events from the control buttons +func (d *Device) controlListener() { + var brightness uint16 = 0 + + if d.DeviceProfile.BrightnessLevel == 0 { + brightness = 1000 + } else { + brightness = d.DeviceProfile.BrightnessLevel + } + + go func() { + enum := hid.EnumFunc(func(info *hid.DeviceInfo) error { + if info.InterfaceNbr == 2 { + listener, err := hid.OpenPath(info.Path) + if err != nil { + return err + } + d.listener = listener + } + return nil + }) + + err := hid.Enumerate(d.VendorId, d.ProductId, enum) + if err != nil { + logger.Log(logger.Fields{"error": err, "vendorId": d.VendorId}).Error("Unable to enumerate devices") + } + + for { + select { + default: + if d.Exit { + err = d.listener.Close() + if err != nil { + logger.Log(logger.Fields{"error": err, "vendorId": d.VendorId}).Error("Failed to close listener") + return + } + return + } + + data := d.getListenerData() + if len(data) == 0 || data == nil { + continue + } + + value := data[4] + if value == 0 && data[16] == 2 { + if brightness >= 1000 { + brightness = 0 + } else { + brightness += 200 + } + + if d.DeviceProfile != nil { + d.DeviceProfile.BrightnessLevel = brightness + d.saveDeviceProfile() + d.setBrightnessLevel() + } + } + } + } + }() +} diff --git a/src/keyboards/keyboards.go b/src/keyboards/keyboards.go index 25571f5..726e699 100644 --- a/src/keyboards/keyboards.go +++ b/src/keyboards/keyboards.go @@ -17,14 +17,16 @@ var ( ) type Keyboard struct { - Version int `json:"version"` - Key string `json:"key"` - Device string `json:"device"` - Layout string `json:"layout"` - Rows int `json:"rows"` - Row map[int]Row `json:"row"` - Zones map[int]Zones `json:"zones"` - Color rgb.Color `json:"color"` + Version int `json:"version"` + Key string `json:"key"` + Device string `json:"device"` + Layout string `json:"layout"` + Rows int `json:"rows"` + Row map[int]Row `json:"row"` + Zones map[int]Zones `json:"zones"` + Color rgb.Color `json:"color"` + UppercaseClass string `json:"uppercaseClass"` + FontSize int `json:"fontSize"` } type Zones struct { diff --git a/src/templates/templates.go b/src/templates/templates.go index 859d24a..1489442 100644 --- a/src/templates/templates.go +++ b/src/templates/templates.go @@ -100,6 +100,7 @@ func Init() { "web/virtuosorgbXTW.html", "web/darkstarWU.html", "web/darkstarW.html", + "web/k70rgbtklcs.html", "web/rgb.html", "web/temperature.html", "web/scheduler.html", diff --git a/static/css/custom.css b/static/css/custom.css index d007452..a5708bb 100644 --- a/static/css/custom.css +++ b/static/css/custom.css @@ -616,6 +616,18 @@ footer { grid-gap: 5px; } +.keyboard-row-18 { + display: grid; + grid-template-columns: repeat(18, 60px); + grid-gap: 5px; +} + +.keyboard-row-19 { + display: grid; + grid-template-columns: repeat(19, 60px); + grid-gap: 5px; +} + .keyboard-row-20 { display: grid; grid-template-columns: repeat(20, 60px); diff --git a/web/k100air.html b/web/k100air.html index 1e02302..6cc0526 100644 --- a/web/k100air.html +++ b/web/k100air.html @@ -116,15 +116,15 @@ {{ end }} {{ if gt (len $keys.Css) 0 }} -
+
{{ else }} -
+
{{ end }} {{ if $keys.Svg }} Icon {{ else }} - + {{ $keys.KeyName }} {{ end }} diff --git a/web/k100airW.html b/web/k100airW.html index 2cd0cb9..fae70b7 100644 --- a/web/k100airW.html +++ b/web/k100airW.html @@ -138,15 +138,15 @@ {{ end }} {{ if gt (len $keys.Css) 0 }} -
+
{{ else }} -
+
{{ end }} {{ if $keys.Svg }} Icon {{ else }} - + {{ $keys.KeyName }} {{ end }} diff --git a/web/k65pm.html b/web/k65pm.html index d3e9e16..09daade 100644 --- a/web/k65pm.html +++ b/web/k65pm.html @@ -134,42 +134,23 @@ {{ range $index, $keys := $keyboard.Row }}
{{ range $index, $keys := .Keys }} - {{ if eq $index 65 }} + {{ range $amount := $keys.Spacing }}
{{ end }} - - {{ if eq $index 14 }} -
- {{ else if eq $index 16 }} -
- {{ else if eq $index 31 }} -
- {{ else if eq $index 29 }} -
- {{ else if eq $index 43 }} -
- {{ else if eq $index 45 }} -
- {{ else if eq $index 56 }} -
- {{ else if eq $index 59 }} -
- {{ else if eq $index 61 }} -
- {{ else if eq $index 62 }} -
+ {{ if gt (len $keys.Css) 0 }} +
{{ else }} -
+
{{ end }} {{ if $keys.Svg }} Icon - {{ else }} - + {{ else }} + {{ $keys.KeyName }} - {{ end }} + {{ end }}
{{ end }}
diff --git a/web/k70core.html b/web/k70core.html index fb9d62d..e0027cf 100644 --- a/web/k70core.html +++ b/web/k70core.html @@ -141,6 +141,7 @@ {{ else }}
{{ end }} + {{ range $index, $keys := .Keys }} {{ if eq $index 2 }}
diff --git a/web/k70rgbtklcs.html b/web/k70rgbtklcs.html new file mode 100644 index 0000000..8ead0e2 --- /dev/null +++ b/web/k70rgbtklcs.html @@ -0,0 +1,175 @@ + + +{{ template "header" . }} + +
+
+ {{ $devs := .Devices }} + {{ $temperatures := .Temperatures }} + {{ $device := .Device }} + {{ $rgb := .Rgb }} + {{ $profile := $device.DeviceProfile.Profile }} + {{ $keyboard := index $device.DeviceProfile.Keyboards $profile }} + +
+
+ {{ template "navigation" . }} +
+
+ +
+
+
+
+
+
+
+ Device +
+
+ {{ .Device.Product }}
+

+ Firmware: {{ .Device.Firmware }} +

+
+
+ + + + + + + +
+
+ {{ if eq "keyboard" $device.DeviceProfile.RGBProfile }} +
+ {{ range $index, $keys := $keyboard.Row }} +
+ {{ range $index, $keys := .Keys }} + + {{ range $amount := $keys.Spacing }} +
+ {{ end }} + + {{ if gt (len $keys.Css) 0 }} +
+ {{ else }} +
+ {{ end }} + + {{ if $keys.Svg }} + Icon + {{ else }} + + {{ $keys.KeyName }} + + {{ end }} +
+ {{ end }} +
+ {{ end }} +
+
+ + + +
+
+ + + + +
+
+
+ {{ end }} +
+
+
+
+
+ {{ template "footer" . }} +
+
+ + + + + + \ No newline at end of file