logo

qmk_firmware

custom branch of QMK firmware git clone https://anongit.hacktivis.me/git/qmk_firmware.git

keyboard.json (23736B)


  1. {
  2. "manufacturer": "Rationalist",
  3. "keyboard_name": "Rati(o)60 Hotswap Rev A",
  4. "maintainer": "4pplet",
  5. "bootloader": "stm32-dfu",
  6. "diode_direction": "COL2ROW",
  7. "encoder": {
  8. "rotary": [
  9. {"pin_a": "A1", "pin_b": "A0", "resolution": 2}
  10. ]
  11. },
  12. "features": {
  13. "bootmagic": true,
  14. "encoder": true,
  15. "extrakey": true,
  16. "mousekey": true,
  17. "nkro": true,
  18. "rgblight": true
  19. },
  20. "matrix_pins": {
  21. "cols": ["B2", "A4", "A3", "A2", "F1", "F0", "C15", "C14", "C13", "B9", "B8", "B7", "A15", "B3"],
  22. "rows": ["B14", "A9", "B6", "B5", "B4"]
  23. },
  24. "processor": "STM32F072",
  25. "rgblight": {
  26. "animations": {
  27. "alternating": true,
  28. "breathing": true,
  29. "christmas": true,
  30. "knight": true,
  31. "rainbow_mood": true,
  32. "rainbow_swirl": true,
  33. "rgb_test": true,
  34. "snake": true,
  35. "static_gradient": true,
  36. "twinkle": true
  37. },
  38. "led_count": 16
  39. },
  40. "usb": {
  41. "device_version": "0.0.1",
  42. "pid": "0x0003",
  43. "vid": "0x4446"
  44. },
  45. "ws2812": {
  46. "pin": "A8"
  47. },
  48. "community_layouts": [
  49. "60_ansi",
  50. "60_ansi_split_bs_rshift",
  51. "60_ansi_tsangan",
  52. "60_ansi_tsangan_split_bs_rshift",
  53. "60_hhkb"
  54. ],
  55. "layout_aliases": {
  56. "LAYOUT_60_tsangan_hhkb": "LAYOUT_60_ansi_tsangan_split_bs_rshift"
  57. },
  58. "layouts": {
  59. "LAYOUT_60_ansi": {
  60. "layout": [
  61. {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
  62. {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
  63. {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
  64. {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
  65. {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
  66. {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
  67. {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
  68. {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
  69. {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
  70. {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
  71. {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
  72. {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
  73. {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
  74. {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 0, "w": 2},
  75. {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  76. {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
  77. {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
  78. {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
  79. {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
  80. {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
  81. {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
  82. {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
  83. {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
  84. {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
  85. {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
  86. {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
  87. {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
  88. {"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
  89. {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  90. {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
  91. {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
  92. {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
  93. {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
  94. {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
  95. {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
  96. {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
  97. {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
  98. {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
  99. {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
  100. {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
  101. {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
  102. {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
  103. {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
  104. {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
  105. {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
  106. {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
  107. {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
  108. {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
  109. {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
  110. {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
  111. {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
  112. {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
  113. {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
  114. {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
  115. {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
  116. {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
  117. {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
  118. {"label": "Alt", "matrix": [4, 8], "x": 10, "y": 4, "w": 1.25},
  119. {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
  120. {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
  121. {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
  122. ]
  123. },
  124. "LAYOUT_60_ansi_split_bs_rshift": {
  125. "layout": [
  126. {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
  127. {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
  128. {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
  129. {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
  130. {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
  131. {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
  132. {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
  133. {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
  134. {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
  135. {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
  136. {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
  137. {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
  138. {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
  139. {"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
  140. {"label": "~", "matrix": [1, 13], "x": 14, "y": 0},
  141. {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  142. {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
  143. {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
  144. {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
  145. {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
  146. {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
  147. {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
  148. {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
  149. {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
  150. {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
  151. {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
  152. {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
  153. {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
  154. {"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
  155. {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  156. {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
  157. {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
  158. {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
  159. {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
  160. {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
  161. {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
  162. {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
  163. {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
  164. {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
  165. {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
  166. {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
  167. {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
  168. {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
  169. {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
  170. {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
  171. {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
  172. {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
  173. {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
  174. {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
  175. {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
  176. {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
  177. {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
  178. {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
  179. {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
  180. {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
  181. {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.25},
  182. {"label": "Win", "matrix": [4, 1], "x": 1.25, "y": 4, "w": 1.25},
  183. {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.25},
  184. {"label": "Space", "matrix": [4, 6], "x": 3.75, "y": 4, "w": 6.25},
  185. {"label": "Alt", "matrix": [4, 8], "x": 10, "y": 4, "w": 1.25},
  186. {"label": "Win", "matrix": [4, 11], "x": 11.25, "y": 4, "w": 1.25},
  187. {"label": "Menu", "matrix": [4, 12], "x": 12.5, "y": 4, "w": 1.25},
  188. {"label": "Ctrl", "matrix": [4, 13], "x": 13.75, "y": 4, "w": 1.25}
  189. ]
  190. },
  191. "LAYOUT_60_ansi_tsangan": {
  192. "layout": [
  193. {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
  194. {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
  195. {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
  196. {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
  197. {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
  198. {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
  199. {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
  200. {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
  201. {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
  202. {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
  203. {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
  204. {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
  205. {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
  206. {"label": "Backspace", "matrix": [1, 13], "x": 13, "y": 0, "w": 2},
  207. {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  208. {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
  209. {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
  210. {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
  211. {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
  212. {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
  213. {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
  214. {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
  215. {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
  216. {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
  217. {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
  218. {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
  219. {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
  220. {"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
  221. {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  222. {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
  223. {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
  224. {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
  225. {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
  226. {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
  227. {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
  228. {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
  229. {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
  230. {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
  231. {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
  232. {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
  233. {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
  234. {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
  235. {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
  236. {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
  237. {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
  238. {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
  239. {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
  240. {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
  241. {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
  242. {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
  243. {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
  244. {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
  245. {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 2.75},
  246. {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
  247. {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
  248. {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
  249. {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
  250. {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
  251. {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4},
  252. {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
  253. ]
  254. },
  255. "LAYOUT_60_hhkb": {
  256. "layout": [
  257. {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
  258. {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
  259. {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
  260. {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
  261. {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
  262. {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
  263. {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
  264. {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
  265. {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
  266. {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
  267. {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
  268. {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
  269. {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
  270. {"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
  271. {"label": "~", "matrix": [1, 13], "x": 14, "y": 0},
  272. {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  273. {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
  274. {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
  275. {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
  276. {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
  277. {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
  278. {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
  279. {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
  280. {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
  281. {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
  282. {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
  283. {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
  284. {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
  285. {"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
  286. {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  287. {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
  288. {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
  289. {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
  290. {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
  291. {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
  292. {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
  293. {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
  294. {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
  295. {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
  296. {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
  297. {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
  298. {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
  299. {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
  300. {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
  301. {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
  302. {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
  303. {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
  304. {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
  305. {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
  306. {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
  307. {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
  308. {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
  309. {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
  310. {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
  311. {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
  312. {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
  313. {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
  314. {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
  315. {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
  316. {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4}
  317. ]
  318. },
  319. "LAYOUT_60_ansi_tsangan_split_bs_rshift": {
  320. "layout": [
  321. {"label": "Esc", "matrix": [0, 0], "x": 0, "y": 0},
  322. {"label": "!", "matrix": [0, 1], "x": 1, "y": 0},
  323. {"label": "@", "matrix": [0, 2], "x": 2, "y": 0},
  324. {"label": "#", "matrix": [0, 3], "x": 3, "y": 0},
  325. {"label": "$", "matrix": [0, 4], "x": 4, "y": 0},
  326. {"label": "%", "matrix": [0, 5], "x": 5, "y": 0},
  327. {"label": "^", "matrix": [0, 6], "x": 6, "y": 0},
  328. {"label": "&", "matrix": [0, 7], "x": 7, "y": 0},
  329. {"label": "*", "matrix": [0, 8], "x": 8, "y": 0},
  330. {"label": "(", "matrix": [0, 9], "x": 9, "y": 0},
  331. {"label": ")", "matrix": [0, 10], "x": 10, "y": 0},
  332. {"label": "_", "matrix": [0, 11], "x": 11, "y": 0},
  333. {"label": "+", "matrix": [0, 12], "x": 12, "y": 0},
  334. {"label": "|", "matrix": [0, 13], "x": 13, "y": 0},
  335. {"label": "~", "matrix": [1, 13], "x": 14, "y": 0},
  336. {"label": "Tab", "matrix": [1, 0], "x": 0, "y": 1, "w": 1.5},
  337. {"label": "Q", "matrix": [1, 1], "x": 1.5, "y": 1},
  338. {"label": "W", "matrix": [1, 2], "x": 2.5, "y": 1},
  339. {"label": "E", "matrix": [1, 3], "x": 3.5, "y": 1},
  340. {"label": "R", "matrix": [1, 4], "x": 4.5, "y": 1},
  341. {"label": "T", "matrix": [1, 5], "x": 5.5, "y": 1},
  342. {"label": "Y", "matrix": [1, 6], "x": 6.5, "y": 1},
  343. {"label": "U", "matrix": [1, 7], "x": 7.5, "y": 1},
  344. {"label": "I", "matrix": [1, 8], "x": 8.5, "y": 1},
  345. {"label": "O", "matrix": [1, 9], "x": 9.5, "y": 1},
  346. {"label": "P", "matrix": [1, 10], "x": 10.5, "y": 1},
  347. {"label": "{", "matrix": [1, 11], "x": 11.5, "y": 1},
  348. {"label": "}", "matrix": [1, 12], "x": 12.5, "y": 1},
  349. {"label": "|", "matrix": [2, 12], "x": 13.5, "y": 1, "w": 1.5},
  350. {"label": "Caps Lock", "matrix": [2, 0], "x": 0, "y": 2, "w": 1.75},
  351. {"label": "A", "matrix": [2, 1], "x": 1.75, "y": 2},
  352. {"label": "S", "matrix": [2, 2], "x": 2.75, "y": 2},
  353. {"label": "D", "matrix": [2, 3], "x": 3.75, "y": 2},
  354. {"label": "F", "matrix": [2, 4], "x": 4.75, "y": 2},
  355. {"label": "G", "matrix": [2, 5], "x": 5.75, "y": 2},
  356. {"label": "H", "matrix": [2, 6], "x": 6.75, "y": 2},
  357. {"label": "J", "matrix": [2, 7], "x": 7.75, "y": 2},
  358. {"label": "K", "matrix": [2, 8], "x": 8.75, "y": 2},
  359. {"label": "L", "matrix": [2, 9], "x": 9.75, "y": 2},
  360. {"label": ":", "matrix": [2, 10], "x": 10.75, "y": 2},
  361. {"label": "\"", "matrix": [2, 11], "x": 11.75, "y": 2},
  362. {"label": "Enter", "matrix": [2, 13], "x": 12.75, "y": 2, "w": 2.25},
  363. {"label": "Shift", "matrix": [3, 0], "x": 0, "y": 3, "w": 2.25},
  364. {"label": "Z", "matrix": [3, 2], "x": 2.25, "y": 3},
  365. {"label": "X", "matrix": [3, 3], "x": 3.25, "y": 3},
  366. {"label": "C", "matrix": [3, 4], "x": 4.25, "y": 3},
  367. {"label": "V", "matrix": [3, 5], "x": 5.25, "y": 3},
  368. {"label": "B", "matrix": [3, 6], "x": 6.25, "y": 3},
  369. {"label": "N", "matrix": [3, 7], "x": 7.25, "y": 3},
  370. {"label": "M", "matrix": [3, 8], "x": 8.25, "y": 3},
  371. {"label": "<", "matrix": [3, 9], "x": 9.25, "y": 3},
  372. {"label": ">", "matrix": [3, 10], "x": 10.25, "y": 3},
  373. {"label": "?", "matrix": [3, 11], "x": 11.25, "y": 3},
  374. {"label": "Shift", "matrix": [3, 12], "x": 12.25, "y": 3, "w": 1.75},
  375. {"label": "Fn", "matrix": [3, 13], "x": 14, "y": 3},
  376. {"label": "Ctrl", "matrix": [4, 0], "x": 0, "y": 4, "w": 1.5},
  377. {"label": "Win", "matrix": [4, 1], "x": 1.5, "y": 4},
  378. {"label": "Alt", "matrix": [4, 2], "x": 2.5, "y": 4, "w": 1.5},
  379. {"label": "Space", "matrix": [4, 6], "x": 4, "y": 4, "w": 7},
  380. {"label": "Alt", "matrix": [4, 11], "x": 11, "y": 4, "w": 1.5},
  381. {"label": "Win", "matrix": [4, 12], "x": 12.5, "y": 4},
  382. {"label": "Ctrl", "matrix": [4, 13], "x": 13.5, "y": 4, "w": 1.5}
  383. ]
  384. }
  385. }
  386. }