Configure keyboard matrix from info.json (#10817)
* Make parameters from info.json available to the build system * move all clueboard settings to info.json * code formatting * make flake8 happy * make flake8 happy * make qmk lint happy * Add support for specifying led indicators in json * move led indicators to the clueboard info.json * Apply suggestions from code review Co-authored-by: Erovia <Erovia@users.noreply.github.com> * add missing docstring Co-authored-by: Erovia <Erovia@users.noreply.github.com>kle2json_hyper
parent
f231f24dda
commit
47b9b11009
@ -0,0 +1 @@ |
||||
Default keymap for the Clueboard 17. |
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,4 @@ |
||||
{ |
||||
"keyboard_name": "Clueboard 2x1800", |
||||
"url": "", |
||||
"maintainer": "skullydazed" |
||||
"diode_direction": "ROW2COL", |
||||
"width": 24 |
||||
} |
||||
|
@ -1,36 +1,4 @@ |
||||
{ |
||||
"keyboard_name": "Clueboard 66%", |
||||
"width": 16.5, |
||||
"height": 5, |
||||
"layouts": { |
||||
"LAYOUT_all": { |
||||
"layout": [ |
||||
{"x": 0, "y": 0, "w": 1, "label": "GRAVE"}, {"x": 1, "y": 0, "w": 1, "label": "1"}, {"x": 2, "y": 0, "w": 1, "label": "2"}, {"x": 3, "y": 0, "w": 1, "label": "3"}, {"x": 4, "y": 0, "w": 1, "label": "4"}, {"x": 5, "y": 0, "w": 1, "label": "5"}, {"x": 6, "y": 0, "w": 1, "label": "6"}, {"x": 7, "y": 0, "w": 1, "label": "7"}, {"x": 8, "y": 0, "w": 1, "label": "8"}, {"x": 9, "y": 0, "w": 1, "label": "9"}, {"x": 10, "y": 0, "w": 1, "label": "0"}, {"x": 11, "y": 0, "w": 1, "label": "DASH"}, {"x": 12, "y": 0, "w": 1, "label": "EQUALSIGN"}, {"x": 13, "y": 0, "w": 1, "label": "YEN"}, {"x": 14, "y": 0, "w": 1, "label": "BACKSPACE"}, {"x": 15.5, "y": 0, "w": 1, "label": "PAGEUP"}, |
||||
{"x": 0, "y": 1, "w": 1.5, "label": "TAB"}, {"x": 1.5, "y": 1, "w": 1, "label": "Q"}, {"x": 2.5, "y": 1, "w": 1, "label": "W"}, {"x": 3.5, "y": 1, "w": 1, "label": "E"}, {"x": 4.5, "y": 1, "w": 1, "label": "R"}, {"x": 5.5, "y": 1, "w": 1, "label": "T"}, {"x": 6.5, "y": 1, "w": 1, "label": "Y"}, {"x": 7.5, "y": 1, "w": 1, "label": "U"}, {"x": 8.5, "y": 1, "w": 1, "label": "I"}, {"x": 9.5, "y": 1, "w": 1, "label": "O"}, {"x": 10.5, "y": 1, "w": 1, "label": "P"}, {"x": 11.5, "y": 1, "w": 1, "label": "LBRACKET"}, {"x": 12.5, "y": 1, "w": 1, "label": "RBRACKET"}, {"x": 13.5, "y": 1, "w": 1.5, "label": "BACKSLASH"}, {"x": 15.5, "y": 1, "w": 1, "label": "PAGEDOWN"}, |
||||
{"x": 0, "y": 2, "w": 1.75, "label": "CAPSLOCK"}, {"x": 1.75, "y": 2, "w": 1, "label": "A"}, {"x": 2.75, "y": 2, "w": 1, "label": "S"}, {"x": 3.75, "y": 2, "w": 1, "label": "D"}, {"x": 4.75, "y": 2, "w": 1, "label": "F"}, {"x": 5.75, "y": 2, "w": 1, "label": "G"}, {"x": 6.75, "y": 2, "w": 1, "label": "H"}, {"x": 7.75, "y": 2, "w": 1, "label": "J"}, {"x": 8.75, "y": 2, "w": 1, "label": "K"}, {"x": 9.75, "y": 2, "w": 1, "label": "L"}, {"x": 10.75, "y": 2, "w": 1, "label": "SEMICOLON"}, {"x": 11.75, "y": 2, "w": 1, "label": "QUOTE"}, {"x": 12.75, "y": 2, "w": 1, "label": "ISOHASH"}, {"x": 13.75, "y": 2, "w": 1.25, "label": "ENTER"}, |
||||
{"x": 0, "y": 3, "w": 1.25, "label": "LSHIFT"}, {"x": 1.25, "y": 3, "w": 1, "label": "ISOBACKSLASH"}, {"x": 2.25, "y": 3, "w": 1, "label": "Z"}, {"x": 3.25, "y": 3, "w": 1, "label": "X"}, {"x": 4.25, "y": 3, "w": 1, "label": "C"}, {"x": 5.25, "y": 3, "w": 1, "label": "V"}, {"x": 6.25, "y": 3, "w": 1, "label": "B"}, {"x": 7.25, "y": 3, "w": 1, "label": "N"}, {"x": 8.25, "y": 3, "w": 1, "label": "M"}, {"x": 9.25, "y": 3, "w": 1, "label": "COMMA"}, {"x": 10.25, "y": 3, "w": 1, "label": "PERIOD"}, {"x": 11.25, "y": 3, "w": 1, "label": "SLASH"}, {"x": 12.25, "y": 3, "w": 1, "label": "JPBACKSLASH"}, {"x": 13.25, "y": 3, "w": 1.25, "label": "RSHIFT"}, {"x": 14.5, "y": 3, "w": 1, "label": "UP"}, |
||||
{"x": 0, "y": 4, "w": 1.25, "label": "LCTRL"}, {"x": 1.25, "y": 4, "w": 1, "label": "LALT"}, {"x": 2.25, "y": 4, "w": 1.25, "label": "LCMD"}, {"x": 3.5, "y": 4, "w": 1.25, "label": "MUHENKAN"}, {"x": 4.75, "y": 4, "w": 2, "label": "SPACE1"}, {"x": 6.75, "y": 4, "w": 2, "label": "SPACE2"}, {"x": 8.75, "y": 4, "w": 1.25, "label": "HENKAN"}, {"x": 10, "y": 4, "w": 1.25, "label": "RCMD"}, {"x": 11.25, "y": 4, "w": 1, "label": "RCTRL"}, {"x": 12.25, "y": 4, "w": 1.25, "label": "FN"}, {"x": 13.5, "y": 4, "w": 1, "label": "LEFT"}, {"x": 14.5, "y": 4, "w": 1, "label": "DOWN"}, {"x": 15.5, "y": 4, "w": 1, "label": "RIGHT"} |
||||
] |
||||
}, |
||||
|
||||
"LAYOUT_66_ansi": { |
||||
"layout": [ |
||||
{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"x":15.5, "y":0}, |
||||
{"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"|", "x":13.5, "y":1, "w":1.5}, {"x":15.5, "y":1}, |
||||
{"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"Enter", "x":12.75, "y":2, "w":2.25}, |
||||
{"label":"Shift", "x":0, "y":3, "w":2.25}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"x":14.5, "y":3}, |
||||
{"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"Win", "x":11, "y":4, "w":1.25}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"x":13.5, "y":4}, {"x":14.5, "y":4}, {"x":15.5, "y":4} |
||||
] |
||||
}, |
||||
|
||||
"LAYOUT_66_iso": { |
||||
"layout": [ |
||||
{"label":"~", "x":0, "y":0}, {"label":"!", "x":1, "y":0}, {"label":"@", "x":2, "y":0}, {"label":"#", "x":3, "y":0}, {"label":"$", "x":4, "y":0}, {"label":"%", "x":5, "y":0}, {"label":"^", "x":6, "y":0}, {"label":"&", "x":7, "y":0}, {"label":"*", "x":8, "y":0}, {"label":"(", "x":9, "y":0}, {"label":")", "x":10, "y":0}, {"label":"_", "x":11, "y":0}, {"label":"+", "x":12, "y":0}, {"label":"Backspace", "x":13, "y":0, "w":2}, {"label":"Insert", "x":15.5, "y":0}, |
||||
{"label":"Tab", "x":0, "y":1, "w":1.5}, {"label":"Q", "x":1.5, "y":1}, {"label":"W", "x":2.5, "y":1}, {"label":"E", "x":3.5, "y":1}, {"label":"R", "x":4.5, "y":1}, {"label":"T", "x":5.5, "y":1}, {"label":"Y", "x":6.5, "y":1}, {"label":"U", "x":7.5, "y":1}, {"label":"I", "x":8.5, "y":1}, {"label":"O", "x":9.5, "y":1}, {"label":"P", "x":10.5, "y":1}, {"label":"{", "x":11.5, "y":1}, {"label":"}", "x":12.5, "y":1}, {"label":"Delete", "x":15.5, "y":1}, |
||||
{"label":"Caps Lock", "x":0, "y":2, "w":1.75}, {"label":"A", "x":1.75, "y":2}, {"label":"S", "x":2.75, "y":2}, {"label":"D", "x":3.75, "y":2}, {"label":"F", "x":4.75, "y":2}, {"label":"G", "x":5.75, "y":2}, {"label":"H", "x":6.75, "y":2}, {"label":"J", "x":7.75, "y":2}, {"label":"K", "x":8.75, "y":2}, {"label":"L", "x":9.75, "y":2}, {"label":":", "x":10.75, "y":2}, {"label":"\"", "x":11.75, "y":2}, {"label":"", "x":12.75, "y":2}, {"label":"Enter", "x":13.75, "y":1, "w":1.25, "h":2}, |
||||
{"label":"Shift", "x":0, "y":3, "w":1.25}, {"label":"\\", "x":1.25, "y":3, "w":1}, {"label":"Z", "x":2.25, "y":3}, {"label":"X", "x":3.25, "y":3}, {"label":"C", "x":4.25, "y":3}, {"label":"V", "x":5.25, "y":3}, {"label":"B", "x":6.25, "y":3}, {"label":"N", "x":7.25, "y":3}, {"label":"M", "x":8.25, "y":3}, {"label":"<", "x":9.25, "y":3}, {"label":">", "x":10.25, "y":3}, {"label":"?", "x":11.25, "y":3}, {"label":"Shift", "x":12.25, "y":3, "w":2.25}, {"label":"\u2191", "x":14.5, "y":3}, |
||||
{"label":"Ctrl", "x":0, "y":4, "w":1.25}, {"label":"Win", "x":1.25, "y":4, "w":1.25}, {"label":"Alt", "x":2.5, "y":4, "w":1.25}, {"x":3.75, "y":4, "w":6}, {"label":"Alt", "x":9.75, "y":4, "w":1.25}, {"label":"Ctrl", "x":11, "y":4, "w":1.25}, {"label":"Menu", "x":12.25, "y":4, "w":1.25}, {"label":"\u2190", "x":13.5, "y":4}, {"label":"\u2193", "x":14.5, "y":4}, {"label":"\u2192", "x":15.5, "y":4} |
||||
] |
||||
} |
||||
} |
||||
"height": 5 |
||||
} |
||||
|
@ -0,0 +1,273 @@ |
||||
{ |
||||
"manufacturer": "Clueboard", |
||||
"keyboard_name": "Clueboard 66%", |
||||
"maintainer": "skullydazed", |
||||
"height": 5, |
||||
"width": 16.5, |
||||
"debounce": "5", |
||||
"diode_direction": "COL2ROW", |
||||
"features": { |
||||
"audio": false, |
||||
"backlight": false, |
||||
"bluetooth": false, |
||||
"bootmagic": false, |
||||
"command": false, |
||||
"console": true, |
||||
"extrakey": true, |
||||
"midi": false, |
||||
"mousekey": true, |
||||
"nkro": true, |
||||
"rgblight": false, |
||||
"unicode": false |
||||
}, |
||||
"indicators": { |
||||
"caps_lock": "F0" |
||||
}, |
||||
"matrix_pins": { |
||||
"cols": ["B3", " F1", " F4", " F5", " F6", " C7", " C6", " B6", " B5", " B4", " D7", " D6", " D4", " F7", " B0", " B1"], |
||||
"rows": ["D1", " D0", " D2", " D5", " D3"] |
||||
}, |
||||
"rgblight": { |
||||
"animations": { |
||||
"all": true |
||||
}, |
||||
"brightness_steps": "17", |
||||
"hue_steps": "10", |
||||
"led_count": "14", |
||||
"pin": "B2", |
||||
"saturation_steps": "17" |
||||
}, |
||||
"usb": { |
||||
"device_ver": "0x0001", |
||||
"pid": "0x2301", |
||||
"vid": "0xC1ED" |
||||
}, |
||||
"community_layouts": ["66_ansi", "66_iso"], |
||||
"layout_aliases": { |
||||
"KEYMAP": "LAYOUT_all", |
||||
"LAYOUT": "LAYOUT_all" |
||||
}, |
||||
"layouts": { |
||||
"LAYOUT_66_ansi": { |
||||
"key_count": 66, |
||||
"layout": [ |
||||
{ "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "*", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "(", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": ")", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "_", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "+", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "Backspace", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, |
||||
{ "label": "k0F", "matrix": [0, 15], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "I", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "O", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "P", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "{", "matrix": [1, 11], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "}", "matrix": [1, 12], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "|", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, |
||||
{ "label": "k1F", "matrix": [1, 15], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "K", "matrix": [2, 8], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "L", "matrix": [2, 9], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": ":", "matrix": [2, 10], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "\"", "matrix": [2, 11], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "Enter", "matrix": [2, 13], "w": 2.25, "x": 12.75, "y": 2 }, |
||||
{ "label": "Shift", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, |
||||
{ "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "M", "matrix": [3, 8], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "<", "matrix": [3, 9], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": ">", "matrix": [3, 10], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "?", "matrix": [3, 11], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "Shift", "matrix": [3, 13], "w": 2.25, "x": 12.25, "y": 3 }, |
||||
{ "label": "k3E", "matrix": [3, 14], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, |
||||
{ "label": "k46", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [4, 10], "w": 1.25, "x": 9.75, "y": 4 }, |
||||
{ "label": "Win", "matrix": [4, 11], "w": 1.25, "x": 11, "y": 4 }, |
||||
{ "label": "Menu", "matrix": [4, 12], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "k4D", "matrix": [4, 13], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "k4E", "matrix": [4, 14], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "k4F", "matrix": [4, 15], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
}, |
||||
"LAYOUT_66_iso": { |
||||
"key_count": 67, |
||||
"layout": [ |
||||
{ "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "*", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "(", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": ")", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "_", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "+", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "Backspace", "matrix": [0, 14], "w": 2, "x": 13, "y": 0 }, |
||||
{ "label": "Insert", "matrix": [0, 15], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "I", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "O", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "P", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "{", "matrix": [1, 11], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "}", "matrix": [1, 12], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "Delete", "matrix": [1, 15], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "K", "matrix": [2, 8], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "L", "matrix": [2, 9], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": ":", "matrix": [2, 10], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "\"", "matrix": [2, 11], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "", "matrix": [2, 12], "w": 1, "x": 12.75, "y": 2 }, |
||||
{ "h": 2, "label": "Enter", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 1 }, |
||||
{ "label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, |
||||
{ "label": "\\", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, |
||||
{ "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "M", "matrix": [3, 8], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "<", "matrix": [3, 9], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": ">", "matrix": [3, 10], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "?", "matrix": [3, 11], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "Shift", "matrix": [3, 13], "w": 2.25, "x": 12.25, "y": 3 }, |
||||
{ "label": "\u2191", "matrix": [3, 14], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, |
||||
{ "label": "k46", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [4, 10], "w": 1.25, "x": 9.75, "y": 4 }, |
||||
{ "label": "Ctrl", "matrix": [4, 11], "w": 1.25, "x": 11, "y": 4 }, |
||||
{ "label": "Menu", "matrix": [4, 12], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "\u2190", "matrix": [4, 13], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "\u2193", "matrix": [4, 14], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "\u2192", "matrix": [4, 15], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
}, |
||||
"LAYOUT_all": { |
||||
"key_count": 73, |
||||
"layout": [ |
||||
{ "label": "GRAVE", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "1", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "2", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "3", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "4", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "5", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "6", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "7", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "8", "matrix": [0, 8], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "9", "matrix": [0, 9], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": "0", "matrix": [0, 10], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "DASH", "matrix": [0, 11], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "EQUALSIGN", "matrix": [0, 12], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "YEN", "matrix": [0, 13], "w": 1, "x": 13, "y": 0 }, |
||||
{ "label": "BACKSPACE", "matrix": [0, 14], "w": 1, "x": 14, "y": 0 }, |
||||
{ "label": "PAGEUP", "matrix": [0, 15], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "TAB", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "I", "matrix": [1, 8], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "O", "matrix": [1, 9], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "P", "matrix": [1, 10], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "LBRACKET", "matrix": [1, 11], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "RBRACKET", "matrix": [1, 12], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "BACKSLASH", "matrix": [1, 13], "w": 1.5, "x": 13.5, "y": 1 }, |
||||
{ "label": "PAGEDOWN", "matrix": [1, 15], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "CAPSLOCK", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "K", "matrix": [2, 8], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "L", "matrix": [2, 9], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": "SEMICOLON", "matrix": [2, 10], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "QUOTE", "matrix": [2, 11], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "ISOHASH", "matrix": [2, 12], "w": 1, "x": 12.75, "y": 2 }, |
||||
{ "label": "ENTER", "matrix": [2, 13], "w": 1.25, "x": 13.75, "y": 2 }, |
||||
{ "label": "LSHIFT", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, |
||||
{ "label": "ISOBACKSLASH", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, |
||||
{ "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "M", "matrix": [3, 8], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "COMMA", "matrix": [3, 9], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": "PERIOD", "matrix": [3, 10], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "SLASH", "matrix": [3, 11], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "JPBACKSLASH", "matrix": [3, 12], "w": 1, "x": 12.25, "y": 3 }, |
||||
{ "label": "RSHIFT", "matrix": [3, 13], "w": 1.25, "x": 13.25, "y": 3 }, |
||||
{ "label": "UP", "matrix": [3, 14], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "LCTRL", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "LALT", "matrix": [4, 1], "w": 1, "x": 1.25, "y": 4 }, |
||||
{ "label": "LCMD", "matrix": [4, 2], "w": 1.25, "x": 2.25, "y": 4 }, |
||||
{ "label": "MUHENKAN", "matrix": [4, 3], "w": 1.25, "x": 3.5, "y": 4 }, |
||||
{ "label": "SPACE1", "matrix": [4, 5], "w": 2, "x": 4.75, "y": 4 }, |
||||
{ "label": "SPACE2", "matrix": [4, 6], "w": 2, "x": 6.75, "y": 4 }, |
||||
{ "label": "HENKAN", "matrix": [4, 9], "w": 1.25, "x": 8.75, "y": 4 }, |
||||
{ "label": "RCMD", "matrix": [4, 10], "w": 1.25, "x": 10, "y": 4 }, |
||||
{ "label": "RCTRL", "matrix": [4, 11], "w": 1, "x": 11.25, "y": 4 }, |
||||
{ "label": "FN", "matrix": [4, 12], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "LEFT", "matrix": [4, 13], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "DOWN", "matrix": [4, 14], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "RIGHT", "matrix": [4, 15], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,15 @@ |
||||
# Clueboard 66% |
||||
|
||||
 |
||||
|
||||
A fully customizable 66% keyboard. |
||||
|
||||
* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) |
||||
* Hardware Supported: Clueboard 66% PCB rev1 (atmega32u4) |
||||
* Hardware Availability: [clueboard.co](https://clueboard.co/) |
||||
|
||||
Make example for this keyboard (after setting up your build environment): |
||||
|
||||
make clueboard/66/rev1:default |
||||
|
||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
@ -0,0 +1,273 @@ |
||||
{ |
||||
"manufacturer": "Clueboard", |
||||
"keyboard_name": "Clueboard 66%", |
||||
"maintainer": "skullydazed", |
||||
"height": 5, |
||||
"width": 16.5, |
||||
"debounce": "5", |
||||
"diode_direction": "COL2ROW", |
||||
"features": { |
||||
"audio": false, |
||||
"backlight": true, |
||||
"bluetooth": false, |
||||
"bootmagic": false, |
||||
"command": false, |
||||
"console": true, |
||||
"extrakey": true, |
||||
"midi": false, |
||||
"mousekey": true, |
||||
"nkro": true, |
||||
"rgblight": true, |
||||
"unicode": false |
||||
}, |
||||
"indicators": { |
||||
"caps_lock": "B4" |
||||
}, |
||||
"matrix_pins": { |
||||
"cols": ["F0", " F1", " F4", " F5", " F6", " F7", " E6", " B1"], |
||||
"rows": ["B2", " C7", " C6", " B6", " B5", " B0", " B3", " D5", " D3", " D2"] |
||||
}, |
||||
"rgblight": { |
||||
"animations": { |
||||
"all": true |
||||
}, |
||||
"brightness_steps": "17", |
||||
"hue_steps": "32", |
||||
"led_count": "14", |
||||
"pin": "D7", |
||||
"saturation_steps": "17" |
||||
}, |
||||
"usb": { |
||||
"device_ver": "0x0001", |
||||
"pid": "0x2320", |
||||
"vid": "0xC1ED" |
||||
}, |
||||
"community_layouts": ["66_ansi", "66_iso"], |
||||
"layout_aliases": { |
||||
"KEYMAP": "LAYOUT_all", |
||||
"LAYOUT": "LAYOUT_all" |
||||
}, |
||||
"layouts": { |
||||
"LAYOUT_66_ansi": { |
||||
"key_count": 66, |
||||
"layout": [ |
||||
{ "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "*", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "(", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": ")", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "_", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "+", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "Backspace", "matrix": [5, 6], "w": 2, "x": 13, "y": 0 }, |
||||
{ "label": "k57", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "{", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "}", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "|", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, |
||||
{ "label": "k67", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": ":", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "\"", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "Enter", "matrix": [7, 5], "w": 2.25, "x": 12.75, "y": 2 }, |
||||
{ "label": "Shift", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, |
||||
{ "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "<", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": ">", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "?", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "Shift", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, |
||||
{ "label": "k86", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, |
||||
{ "label": "k46", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [9, 2], "w": 1.25, "x": 9.75, "y": 4 }, |
||||
{ "label": "Win", "matrix": [9, 3], "w": 1.25, "x": 11, "y": 4 }, |
||||
{ "label": "Menu", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "k95", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "k96", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "k97", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
}, |
||||
"LAYOUT_66_iso": { |
||||
"key_count": 67, |
||||
"layout": [ |
||||
{ "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "*", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "(", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": ")", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "_", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "+", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "Backspace", "matrix": [5, 6], "w": 2, "x": 13, "y": 0 }, |
||||
{ "label": "Insert", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "{", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "}", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "Delete", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": ":", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "\"", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "", "matrix": [7, 4], "w": 1, "x": 12.75, "y": 2 }, |
||||
{ "h": 2, "label": "Enter", "matrix": [7, 5], "w": 1.25, "x": 13.75, "y": 1 }, |
||||
{ "label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, |
||||
{ "label": "\\", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, |
||||
{ "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "<", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": ">", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "?", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "Shift", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, |
||||
{ "label": "\u2191", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, |
||||
{ "label": "k46", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [9, 2], "w": 1.25, "x": 9.75, "y": 4 }, |
||||
{ "label": "Ctrl", "matrix": [9, 3], "w": 1.25, "x": 11, "y": 4 }, |
||||
{ "label": "Menu", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "\u2190", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "\u2193", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "\u2192", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
}, |
||||
"LAYOUT_all": { |
||||
"key_count": 73, |
||||
"layout": [ |
||||
{ "label": "GRAVE", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "1", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "2", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "3", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "4", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "5", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "6", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "7", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "8", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "9", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": "0", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "DASH", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "EQUALSIGN", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "YEN", "matrix": [5, 5], "w": 1, "x": 13, "y": 0 }, |
||||
{ "label": "BACKSPACE", "matrix": [5, 6], "w": 1, "x": 14, "y": 0 }, |
||||
{ "label": "PAGEUP", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "TAB", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "LBRACKET", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "RBRACKET", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "BACKSLASH", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, |
||||
{ "label": "PAGEDOWN", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "CAPSLOCK", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": "SEMICOLON", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "QUOTE", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "ISOHASH", "matrix": [7, 4], "w": 1, "x": 12.75, "y": 2 }, |
||||
{ "label": "ENTER", "matrix": [7, 5], "w": 1.25, "x": 13.75, "y": 2 }, |
||||
{ "label": "LSHIFT", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, |
||||
{ "label": "ISOBACKSLASH", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, |
||||
{ "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "COMMA", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": "PERIOD", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "SLASH", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "JPBACKSLASH", "matrix": [8, 4], "w": 1, "x": 12.25, "y": 3 }, |
||||
{ "label": "RSHIFT", "matrix": [8, 5], "w": 1.25, "x": 13.25, "y": 3 }, |
||||
{ "label": "UP", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "LCTRL", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "LALT", "matrix": [4, 1], "w": 1, "x": 1.25, "y": 4 }, |
||||
{ "label": "LCMD", "matrix": [4, 2], "w": 1.25, "x": 2.25, "y": 4 }, |
||||
{ "label": "MUHENKAN", "matrix": [4, 3], "w": 1.25, "x": 3.5, "y": 4 }, |
||||
{ "label": "SPACE1", "matrix": [4, 5], "w": 2, "x": 4.75, "y": 4 }, |
||||
{ "label": "SPACE2", "matrix": [4, 6], "w": 2, "x": 6.75, "y": 4 }, |
||||
{ "label": "HENKAN", "matrix": [9, 0], "w": 1.25, "x": 8.75, "y": 4 }, |
||||
{ "label": "RCMD", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 }, |
||||
{ "label": "RCTRL", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 }, |
||||
{ "label": "FN", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "LEFT", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "DOWN", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "RIGHT", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,15 @@ |
||||
# Clueboard 66% |
||||
|
||||
 |
||||
|
||||
A fully customizable 66% keyboard. |
||||
|
||||
* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) |
||||
* Hardware Supported: Clueboard 66% PCB rev2 (atmega32u4) |
||||
* Hardware Availability: [clueboard.co](https://clueboard.co/) |
||||
|
||||
Make example for this keyboard (after setting up your build environment): |
||||
|
||||
make clueboard/66/rev2:default |
||||
|
||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
@ -0,0 +1,273 @@ |
||||
{ |
||||
"manufacturer": "Clueboard", |
||||
"keyboard_name": "Clueboard 66% rev3", |
||||
"maintainer": "skullydazed", |
||||
"height": 5, |
||||
"width": 16.5, |
||||
"debounce": "5", |
||||
"diode_direction": "COL2ROW", |
||||
"features": { |
||||
"audio": false, |
||||
"backlight": true, |
||||
"bluetooth": false, |
||||
"bootmagic": false, |
||||
"command": false, |
||||
"console": true, |
||||
"extrakey": true, |
||||
"midi": false, |
||||
"mousekey": true, |
||||
"nkro": true, |
||||
"rgblight": true, |
||||
"unicode": false |
||||
}, |
||||
"indicators": { |
||||
"caps_lock": "B4" |
||||
}, |
||||
"matrix_pins": { |
||||
"cols": ["F0", " F1", " F4", " F5", " F6", " F7", " E6", " B1"], |
||||
"rows": ["B2", " C7", " C6", " B6", " B5", " B0", " B3", " D5", " D3", " D2"] |
||||
}, |
||||
"rgblight": { |
||||
"animations": { |
||||
"all": true |
||||
}, |
||||
"brightness_steps": "17", |
||||
"hue_steps": "32", |
||||
"led_count": "18", |
||||
"pin": "D7", |
||||
"saturation_steps": "17" |
||||
}, |
||||
"usb": { |
||||
"device_ver": "0x0001", |
||||
"pid": "0x2370", |
||||
"vid": "0xC1ED" |
||||
}, |
||||
"community_layouts": ["66_ansi", "66_iso"], |
||||
"layout_aliases": { |
||||
"KEYMAP": "LAYOUT_all", |
||||
"LAYOUT": "LAYOUT_all" |
||||
}, |
||||
"layouts": { |
||||
"LAYOUT_66_ansi": { |
||||
"key_count": 66, |
||||
"layout": [ |
||||
{ "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "*", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "(", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": ")", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "_", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "+", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "Backspace", "matrix": [5, 6], "w": 2, "x": 13, "y": 0 }, |
||||
{ "label": "k57", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "{", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "}", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "|", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, |
||||
{ "label": "k67", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": ":", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "\"", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "Enter", "matrix": [7, 5], "w": 2.25, "x": 12.75, "y": 2 }, |
||||
{ "label": "Shift", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, |
||||
{ "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "<", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": ">", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "?", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "Shift", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, |
||||
{ "label": "k86", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, |
||||
{ "label": "k46", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [9, 2], "w": 1.25, "x": 9.75, "y": 4 }, |
||||
{ "label": "Win", "matrix": [9, 3], "w": 1.25, "x": 11, "y": 4 }, |
||||
{ "label": "Menu", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "k95", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "k96", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "k97", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
}, |
||||
"LAYOUT_66_iso": { |
||||
"key_count": 67, |
||||
"layout": [ |
||||
{ "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "*", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "(", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": ")", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "_", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "+", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "Backspace", "matrix": [5, 6], "w": 2, "x": 13, "y": 0 }, |
||||
{ "label": "Insert", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "{", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "}", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "Delete", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": ":", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "\"", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "", "matrix": [7, 4], "w": 1, "x": 12.75, "y": 2 }, |
||||
{ "h": 2, "label": "Enter", "matrix": [7, 5], "w": 1.25, "x": 13.75, "y": 1 }, |
||||
{ "label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, |
||||
{ "label": "\\", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, |
||||
{ "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "<", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": ">", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "?", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "Shift", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, |
||||
{ "label": "\u2191", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, |
||||
{ "label": "k46", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [9, 2], "w": 1.25, "x": 9.75, "y": 4 }, |
||||
{ "label": "Ctrl", "matrix": [9, 3], "w": 1.25, "x": 11, "y": 4 }, |
||||
{ "label": "Menu", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "\u2190", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "\u2193", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "\u2192", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
}, |
||||
"LAYOUT_all": { |
||||
"key_count": 73, |
||||
"layout": [ |
||||
{ "label": "GRAVE", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "1", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "2", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "3", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "4", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "5", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "6", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "7", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "8", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "9", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": "0", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "DASH", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "EQUALSIGN", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "YEN", "matrix": [5, 5], "w": 1, "x": 13, "y": 0 }, |
||||
{ "label": "BACKSPACE", "matrix": [5, 6], "w": 1, "x": 14, "y": 0 }, |
||||
{ "label": "PAGEUP", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "TAB", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "LBRACKET", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "RBRACKET", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "BACKSLASH", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, |
||||
{ "label": "PAGEDOWN", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "CAPSLOCK", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": "SEMICOLON", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "QUOTE", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "ISOHASH", "matrix": [7, 4], "w": 1, "x": 12.75, "y": 2 }, |
||||
{ "label": "ENTER", "matrix": [7, 5], "w": 1.25, "x": 13.75, "y": 2 }, |
||||
{ "label": "LSHIFT", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, |
||||
{ "label": "ISOBACKSLASH", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, |
||||
{ "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "COMMA", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": "PERIOD", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "SLASH", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "JPBACKSLASH", "matrix": [8, 4], "w": 1, "x": 12.25, "y": 3 }, |
||||
{ "label": "RSHIFT", "matrix": [8, 5], "w": 1.25, "x": 13.25, "y": 3 }, |
||||
{ "label": "UP", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "LCTRL", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "LALT", "matrix": [4, 1], "w": 1, "x": 1.25, "y": 4 }, |
||||
{ "label": "LCMD", "matrix": [4, 2], "w": 1.25, "x": 2.25, "y": 4 }, |
||||
{ "label": "MUHENKAN", "matrix": [4, 3], "w": 1.25, "x": 3.5, "y": 4 }, |
||||
{ "label": "SPACE1", "matrix": [4, 5], "w": 2, "x": 4.75, "y": 4 }, |
||||
{ "label": "SPACE2", "matrix": [4, 6], "w": 2, "x": 6.75, "y": 4 }, |
||||
{ "label": "HENKAN", "matrix": [9, 0], "w": 1.25, "x": 8.75, "y": 4 }, |
||||
{ "label": "RCMD", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 }, |
||||
{ "label": "RCTRL", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 }, |
||||
{ "label": "FN", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "LEFT", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "DOWN", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "RIGHT", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,15 @@ |
||||
# Clueboard 66% |
||||
|
||||
 |
||||
|
||||
A fully customizable 66% keyboard. |
||||
|
||||
* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) |
||||
* Hardware Supported: Clueboard 66% PCB rev3 (atmega32u4) |
||||
* Hardware Availability: [clueboard.co](https://clueboard.co/) |
||||
|
||||
Make example for this keyboard (after setting up your build environment): |
||||
|
||||
make clueboard/66/rev3:default |
||||
|
||||
See [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) then the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
@ -0,0 +1,270 @@ |
||||
{ |
||||
"manufacturer": "Clueboard", |
||||
"keyboard_name": "Clueboard 66% rev4", |
||||
"maintainer": "skullydazed", |
||||
"height": 5, |
||||
"width": 16.5, |
||||
"debounce": "5", |
||||
"diode_direction": "COL2ROW", |
||||
"features": { |
||||
"audio": true, |
||||
"backlight": false, |
||||
"bluetooth": false, |
||||
"bootmagic": false, |
||||
"command": false, |
||||
"console": true, |
||||
"extrakey": true, |
||||
"midi": false, |
||||
"mousekey": true, |
||||
"nkro": true, |
||||
"rgblight": false, |
||||
"unicode": false |
||||
}, |
||||
"matrix_pins": { |
||||
"cols": ["B10", " B2", " B1", " B0", " A7", " B4", " B3", " B5"], |
||||
"rows": ["B11", " A6", " A3", " A2", " A1", " B7", " B6", " C15", " C14", " C13"] |
||||
}, |
||||
"rgblight": { |
||||
"animations": { |
||||
"all": true |
||||
}, |
||||
"brightness_steps": "17", |
||||
"hue_steps": "32", |
||||
"led_count": "18", |
||||
"pin": "D7", |
||||
"saturation_steps": "17" |
||||
}, |
||||
"usb": { |
||||
"device_ver": "0x0001", |
||||
"pid": "0x2390", |
||||
"vid": "0xC1ED" |
||||
}, |
||||
"community_layouts": ["66_ansi", "66_iso"], |
||||
"layout_aliases": { |
||||
"KEYMAP": "LAYOUT_all", |
||||
"LAYOUT": "LAYOUT_all" |
||||
}, |
||||
"layouts": { |
||||
"LAYOUT_66_ansi": { |
||||
"key_count": 66, |
||||
"layout": [ |
||||
{ "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "*", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "(", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": ")", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "_", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "+", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "Backspace", "matrix": [5, 6], "w": 2, "x": 13, "y": 0 }, |
||||
{ "label": "Page Up", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "{", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "}", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "|", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, |
||||
{ "label": "Page Down", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": ":", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "\"", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "Enter", "matrix": [7, 5], "w": 2.25, "x": 12.75, "y": 2 }, |
||||
{ "label": "Shift", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, |
||||
{ "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "<", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": ">", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "?", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "Shift", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, |
||||
{ "label": "Up", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, |
||||
{ "label": "Space", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [9, 2], "w": 1.25, "x": 9.75, "y": 4 }, |
||||
{ "label": "Win", "matrix": [9, 3], "w": 1.25, "x": 11, "y": 4 }, |
||||
{ "label": "Menu", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "Left", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "Down", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "Up", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
}, |
||||
"LAYOUT_66_iso": { |
||||
"key_count": 67, |
||||
"layout": [ |
||||
{ "label": "~", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "!", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "@", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "#", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "$", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "%", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "^", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "&", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "*", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "(", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": ")", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "_", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "+", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "Backspace", "matrix": [5, 6], "w": 2, "x": 13, "y": 0 }, |
||||
{ "label": "Insert", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "Tab", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "{", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "}", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "Delete", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "Caps Lock", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": ":", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "\"", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "", "matrix": [7, 4], "w": 1, "x": 12.75, "y": 2 }, |
||||
{ "h": 2, "label": "Enter", "matrix": [7, 5], "w": 1.25, "x": 13.75, "y": 1 }, |
||||
{ "label": "Shift", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, |
||||
{ "label": "\\", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, |
||||
{ "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "<", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": ">", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "?", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "Shift", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, |
||||
{ "label": "\u2191", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "Ctrl", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "Win", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, |
||||
{ "label": "Space", "matrix": [4, 6], "w": 6, "x": 3.75, "y": 4 }, |
||||
{ "label": "Alt", "matrix": [9, 2], "w": 1.25, "x": 9.75, "y": 4 }, |
||||
{ "label": "Ctrl", "matrix": [9, 3], "w": 1.25, "x": 11, "y": 4 }, |
||||
{ "label": "Menu", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "\u2190", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "\u2193", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "\u2192", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
}, |
||||
"LAYOUT_all": { |
||||
"key_count": 73, |
||||
"layout": [ |
||||
{ "label": "GRAVE", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "1", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "2", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "3", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "4", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "5", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "6", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "7", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "8", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "9", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": "0", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "DASH", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "EQUALSIGN", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "YEN", "matrix": [5, 5], "w": 1, "x": 13, "y": 0 }, |
||||
{ "label": "BACKSPACE", "matrix": [5, 6], "w": 1, "x": 14, "y": 0 }, |
||||
{ "label": "PAGEUP", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "TAB", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "Q", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "W", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "E", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "R", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "T", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "Y", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "U", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "I", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "O", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "P", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "LBRACKET", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "RBRACKET", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "BACKSLASH", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, |
||||
{ "label": "PAGEDOWN", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "CAPSLOCK", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "A", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "S", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "D", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "F", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "G", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "H", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "J", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "K", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "L", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": "SEMICOLON", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "QUOTE", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "ISOHASH", "matrix": [7, 4], "w": 1, "x": 12.75, "y": 2 }, |
||||
{ "label": "ENTER", "matrix": [7, 5], "w": 1.25, "x": 13.75, "y": 2 }, |
||||
{ "label": "LSHIFT", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, |
||||
{ "label": "ISOBACKSLASH", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, |
||||
{ "label": "Z", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "X", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "C", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "V", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "B", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "N", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "M", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "COMMA", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": "PERIOD", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "SLASH", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "JPBACKSLASH", "matrix": [8, 4], "w": 1, "x": 12.25, "y": 3 }, |
||||
{ "label": "RSHIFT", "matrix": [8, 5], "w": 1.25, "x": 13.25, "y": 3 }, |
||||
{ "label": "UP", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "LCTRL", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "LALT", "matrix": [4, 1], "w": 1, "x": 1.25, "y": 4 }, |
||||
{ "label": "LCMD", "matrix": [4, 2], "w": 1.25, "x": 2.25, "y": 4 }, |
||||
{ "label": "MUHENKAN", "matrix": [4, 3], "w": 1.25, "x": 3.5, "y": 4 }, |
||||
{ "label": "SPACE1", "matrix": [4, 5], "w": 2, "x": 4.75, "y": 4 }, |
||||
{ "label": "SPACE2", "matrix": [4, 6], "w": 2, "x": 6.75, "y": 4 }, |
||||
{ "label": "HENKAN", "matrix": [9, 0], "w": 1.25, "x": 8.75, "y": 4 }, |
||||
{ "label": "RCMD", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 }, |
||||
{ "label": "RCTRL", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 }, |
||||
{ "label": "FN", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "LEFT", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "DOWN", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "RIGHT", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,13 @@ |
||||
#include QMK_KEYBOARD_H |
||||
|
||||
/* THIS FILE WAS GENERATED!
|
||||
* |
||||
* This file was generated by qmk json2c. You may or may not want to |
||||
* edit it directly. |
||||
*/ |
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||
[0] = LAYOUT(KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC, KC_SPC, KC_HENK, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), |
||||
[1] = LAYOUT(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_MUTE, KC_VOLD, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, KC_HOME, KC_PGDN, KC_END), |
||||
[2] = LAYOUT(BL_STEP, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI) |
||||
}; |
@ -0,0 +1,13 @@ |
||||
#include QMK_KEYBOARD_H |
||||
|
||||
/* THIS FILE WAS GENERATED!
|
||||
* |
||||
* This file was generated by qmk json2c. You may or may not want to |
||||
* edit it directly. |
||||
*/ |
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||
[0] = LAYOUT(KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC, KC_SPC, KC_HENK, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), |
||||
[1] = LAYOUT(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_MUTE, KC_VOLD, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, KC_HOME, KC_PGDN, KC_END), |
||||
[2] = LAYOUT(BL_STEP, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI) |
||||
}; |
@ -0,0 +1,13 @@ |
||||
#include QMK_KEYBOARD_H |
||||
|
||||
/* THIS FILE WAS GENERATED!
|
||||
* |
||||
* This file was generated by qmk json2c. You may or may not want to |
||||
* edit it directly. |
||||
*/ |
||||
|
||||
const uint16_t PROGMEM keymaps[][MATRIX_ROWS][MATRIX_COLS] = { |
||||
[0] = LAYOUT(KC_GESC, KC_1, KC_2, KC_3, KC_4, KC_5, KC_6, KC_7, KC_8, KC_9, KC_0, KC_MINS, KC_EQL, KC_GRV, KC_BSPC, KC_PGUP, KC_TAB, KC_Q, KC_W, KC_E, KC_R, KC_T, KC_Y, KC_U, KC_I, KC_O, KC_P, KC_LBRC, KC_RBRC, KC_BSLS, KC_PGDN, KC_CAPS, KC_A, KC_S, KC_D, KC_F, KC_G, KC_H, KC_J, KC_K, KC_L, KC_SCLN, KC_QUOT, KC_NUHS, KC_ENT, KC_LSFT, KC_NUBS, KC_Z, KC_X, KC_C, KC_V, KC_B, KC_N, KC_M, KC_COMM, KC_DOT, KC_SLSH, KC_RO, KC_RSFT, KC_UP, KC_LCTL, KC_LGUI, KC_LALT, KC_MHEN, KC_SPC, KC_SPC, KC_HENK, KC_RALT, MO(1), KC_RCTL, KC_LEFT, KC_DOWN, KC_RGHT), |
||||
[1] = LAYOUT(KC_GRV, KC_F1, KC_F2, KC_F3, KC_F4, KC_F5, KC_F6, KC_F7, KC_F8, KC_F9, KC_F10, KC_F11, KC_F12, KC_TRNS, KC_DEL, KC_VOLU, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_MPRV, KC_MPLY, KC_MNXT, KC_TRNS, KC_MUTE, KC_VOLD, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_PGUP, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, KC_HOME, KC_PGDN, KC_END), |
||||
[2] = LAYOUT(BL_STEP, RGB_M_P, RGB_M_B, RGB_M_R, RGB_M_SW, RGB_M_SN, RGB_M_K, RGB_M_X, RGB_M_G, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_TOG, RGB_VAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RESET, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_VAD, KC_TRNS, KC_TRNS, MO(2), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_SAI, KC_TRNS, KC_TRNS, KC_TRNS, KC_TRNS, RGB_MOD, RGB_MOD, KC_TRNS, KC_TRNS, MO(1), KC_TRNS, RGB_HUD, RGB_SAD, RGB_HUI) |
||||
}; |
@ -1,165 +1,178 @@ |
||||
{ |
||||
"keyboard_name": "Clueboard 66% HotSwap Gen1", |
||||
"maintainer": "skullydazed", |
||||
"width": 16.5, |
||||
"height": 5, |
||||
"layouts": { |
||||
"LAYOUT": { |
||||
"layout": [ |
||||
{"x": 0, "y": 0}, |
||||
{"x": 1, "y": 0}, |
||||
{"x": 2, "y": 0}, |
||||
{"x": 3, "y": 0}, |
||||
{"x": 4, "y": 0}, |
||||
{"x": 5, "y": 0}, |
||||
{"x": 6, "y": 0}, |
||||
{"x": 7, "y": 0}, |
||||
{"x": 8, "y": 0}, |
||||
{"x": 9, "y": 0}, |
||||
{"x": 10, "y": 0}, |
||||
{"x": 11, "y": 0}, |
||||
{"x": 12, "y": 0}, |
||||
{"x": 13, "y": 0, "w": 2}, |
||||
|
||||
{"x": 15.5, "y": 0}, |
||||
|
||||
{"x": 0, "y": 1, "w": 1.5}, |
||||
{"x": 1.5, "y": 1}, |
||||
{"x": 2.5, "y": 1}, |
||||
{"x": 3.5, "y": 1}, |
||||
{"x": 4.5, "y": 1}, |
||||
{"x": 5.5, "y": 1}, |
||||
{"x": 6.5, "y": 1}, |
||||
{"x": 7.5, "y": 1}, |
||||
{"x": 8.5, "y": 1}, |
||||
{"x": 9.5, "y": 1}, |
||||
{"x": 10.5, "y": 1}, |
||||
{"x": 11.5, "y": 1}, |
||||
{"x": 12.5, "y": 1}, |
||||
{"x": 13.5, "y": 1, "w": 1.5}, |
||||
|
||||
{"x": 15.5, "y": 1}, |
||||
|
||||
{"x": 0, "y": 2, "w": 1.75}, |
||||
{"x": 1.75, "y": 2}, |
||||
{"x": 2.75, "y": 2}, |
||||
{"x": 3.75, "y": 2}, |
||||
{"x": 4.75, "y": 2}, |
||||
{"x": 5.75, "y": 2}, |
||||
{"x": 6.75, "y": 2}, |
||||
{"x": 7.75, "y": 2}, |
||||
{"x": 8.75, "y": 2}, |
||||
{"x": 9.75, "y": 2}, |
||||
{"x": 10.75, "y": 2}, |
||||
{"x": 11.75, "y": 2}, |
||||
{"x": 12.75, "y": 2, "w": 2.25}, |
||||
|
||||
{"x": 0, "y": 3, "w": 2.25}, |
||||
{"x": 2.25, "y": 3}, |
||||
{"x": 3.25, "y": 3}, |
||||
{"x": 4.25, "y": 3}, |
||||
{"x": 5.25, "y": 3}, |
||||
{"x": 6.25, "y": 3}, |
||||
{"x": 7.25, "y": 3}, |
||||
{"x": 8.25, "y": 3}, |
||||
{"x": 9.25, "y": 3}, |
||||
{"x": 10.25, "y": 3}, |
||||
{"x": 11.25, "y": 3}, |
||||
{"x": 12.25, "y": 3, "w": 2.25}, |
||||
|
||||
{"x": 14.5, "y": 3}, |
||||
|
||||
{"x": 0, "y": 4, "w": 1.25}, |
||||
{"x": 1.25, "y": 4, "w": 1.25}, |
||||
{"x": 2.5, "y": 4, "w": 1.25}, |
||||
{"x": 3.75, "y": 4, "w": 2.75}, |
||||
{"x": 6.5, "y": 4, "w": 2.25}, |
||||
{"x": 8.75, "y": 4, "w": 1.25}, |
||||
{"x": 10, "y": 4, "w": 1.25}, |
||||
{"x": 11.25, "y": 4}, |
||||
{"x": 12.25, "y": 4, "w": 1.25}, |
||||
{"x": 13.5, "y": 4}, |
||||
{"x": 14.5, "y": 4}, |
||||
{"x": 15.5, "y": 4} |
||||
] |
||||
}, |
||||
"LAYOUT_66_ansi": { |
||||
"layout": [ |
||||
{"x": 0, "y": 0}, |
||||
{"x": 1, "y": 0}, |
||||
{"x": 2, "y": 0}, |
||||
{"x": 3, "y": 0}, |
||||
{"x": 4, "y": 0}, |
||||
{"x": 5, "y": 0}, |
||||
{"x": 6, "y": 0}, |
||||
{"x": 7, "y": 0}, |
||||
{"x": 8, "y": 0}, |
||||
{"x": 9, "y": 0}, |
||||
{"x": 10, "y": 0}, |
||||
{"x": 11, "y": 0}, |
||||
{"x": 12, "y": 0}, |
||||
{"x": 13, "y": 0, "w": 2}, |
||||
|
||||
{"x": 15.5, "y": 0}, |
||||
|
||||
{"x": 0, "y": 1, "w": 1.5}, |
||||
{"x": 1.5, "y": 1}, |
||||
{"x": 2.5, "y": 1}, |
||||
{"x": 3.5, "y": 1}, |
||||
{"x": 4.5, "y": 1}, |
||||
{"x": 5.5, "y": 1}, |
||||
{"x": 6.5, "y": 1}, |
||||
{"x": 7.5, "y": 1}, |
||||
{"x": 8.5, "y": 1}, |
||||
{"x": 9.5, "y": 1}, |
||||
{"x": 10.5, "y": 1}, |
||||
{"x": 11.5, "y": 1}, |
||||
{"x": 12.5, "y": 1}, |
||||
{"x": 13.5, "y": 1, "w": 1.5}, |
||||
|
||||
{"x": 15.5, "y": 1}, |
||||
|
||||
{"x": 0, "y": 2, "w": 1.75}, |
||||
{"x": 1.75, "y": 2}, |
||||
{"x": 2.75, "y": 2}, |
||||
{"x": 3.75, "y": 2}, |
||||
{"x": 4.75, "y": 2}, |
||||
{"x": 5.75, "y": 2}, |
||||
{"x": 6.75, "y": 2}, |
||||
{"x": 7.75, "y": 2}, |
||||
{"x": 8.75, "y": 2}, |
||||
{"x": 9.75, "y": 2}, |
||||
{"x": 10.75, "y": 2}, |
||||
{"x": 11.75, "y": 2}, |
||||
{"x": 12.75, "y": 2, "w": 2.25}, |
||||
|
||||
{"x": 0, "y": 3, "w": 2.25}, |
||||
{"x": 2.25, "y": 3}, |
||||
{"x": 3.25, "y": 3}, |
||||
{"x": 4.25, "y": 3}, |
||||
{"x": 5.25, "y": 3}, |
||||
{"x": 6.25, "y": 3}, |
||||
{"x": 7.25, "y": 3}, |
||||
{"x": 8.25, "y": 3}, |
||||
{"x": 9.25, "y": 3}, |
||||
{"x": 10.25, "y": 3}, |
||||
{"x": 11.25, "y": 3}, |
||||
{"x": 12.25, "y": 3, "w": 2.25}, |
||||
|
||||
{"x": 14.5, "y": 3}, |
||||
|
||||
{"x": 0, "y": 4, "w": 1.25}, |
||||
{"x": 1.25, "y": 4, "w": 1.25}, |
||||
{"x": 2.5, "y": 4, "w": 1.25}, |
||||
{"x": 3.75, "y": 4, "w": 6.25}, |
||||
{"x": 10, "y": 4, "w": 1.25}, |
||||
{"x": 11.25, "y": 4}, |
||||
{"x": 12.25, "y": 4, "w": 1.25}, |
||||
|
||||
{"x": 13.5, "y": 4}, |
||||
{"x": 14.5, "y": 4}, |
||||
{"x": 15.5, "y": 4} |
||||
] |
||||
} |
||||
"manufacturer": "Clueboard", |
||||
"keyboard_name": "Clueboard 66% HotSwap Gen1", |
||||
"maintainer": "skullydazed", |
||||
"height": 5, |
||||
"width": 16.5, |
||||
"debounce": "5", |
||||
"diode_direction": "COL2ROW", |
||||
"features": { |
||||
"audio": true, |
||||
"bootmagic": true, |
||||
"command": true, |
||||
"console": true, |
||||
"extrakey": true, |
||||
"led_matrix": "IS31FL3731", |
||||
"mousekey": true, |
||||
"nkro": true |
||||
}, |
||||
"matrix_pins": { |
||||
"cols": ["B10", " B2", " B1", " B0", " A7", " B4", " B3", " B7"], |
||||
"rows": ["B11", " A6", " A3", " A2", " A1", " B5", " B6", " C15", " C14", " C13"] |
||||
}, |
||||
"usb": { |
||||
"device_ver": "0x0001", |
||||
"pid": "0x2391", |
||||
"vid": "0xC1ED" |
||||
}, |
||||
"community_layouts": [], |
||||
"layout_aliases": { |
||||
"LAYOUT": "LAYOUT_all" |
||||
}, |
||||
"layouts": { |
||||
"LAYOUT_66_ansi": { |
||||
"key_count": 66, |
||||
"layout": [ |
||||
{ "label": "k00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "k01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "k02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "k03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "k04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "k05", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "k06", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "k07", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "k50", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "k51", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": "k52", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "k53", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "k54", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "k55", "matrix": [5, 5], "w": 2, "x": 13, "y": 0 }, |
||||
{ "label": "k57", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "k11", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "k12", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "k13", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "k14", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "k15", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "k16", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "k17", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "k60", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "k61", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "k62", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "k63", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "k64", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "k65", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, |
||||
{ "label": "k67", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "k21", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "k22", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "k23", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "k24", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "k25", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "k26", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "k27", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "k70", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "k71", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": "k72", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "k73", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "k75", "matrix": [7, 5], "w": 2.25, "x": 12.75, "y": 2 }, |
||||
{ "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, |
||||
{ "label": "k32", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "k33", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "k34", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "k35", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "k36", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "k37", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "k80", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "k81", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": "k82", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "k83", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "k85", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, |
||||
{ "label": "k86", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "k40", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "k41", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, |
||||
{ "label": "k42", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, |
||||
{ "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, |
||||
{ "label": "k92", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 }, |
||||
{ "label": "k93", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 }, |
||||
{ "label": "k94", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "k95", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "k96", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "k97", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
}, |
||||
"LAYOUT_all": { |
||||
"key_count": 68, |
||||
"layout": [ |
||||
{ "label": "k00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "k01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "k02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "k03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "k04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "k05", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "k06", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "k07", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "k50", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "k51", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": "k52", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "k53", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "k54", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "k55", "matrix": [5, 5], "w": 2, "x": 13, "y": 0 }, |
||||
{ "label": "k57", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "k11", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "k12", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "k13", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "k14", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "k15", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "k16", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "k17", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "k60", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "k61", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "k62", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "k63", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "k64", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "k65", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, |
||||
{ "label": "k67", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "k21", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "k22", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "k23", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "k24", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "k25", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "k26", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "k27", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "k70", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "k71", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": "k72", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "k73", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "k75", "matrix": [7, 5], "w": 2.25, "x": 12.75, "y": 2 }, |
||||
{ "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, |
||||
{ "label": "k32", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "k33", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "k34", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "k35", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "k36", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "k37", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "k80", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "k81", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": "k82", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "k83", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "k85", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, |
||||
{ "label": "k86", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "k40", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "k41", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, |
||||
{ "label": "k42", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, |
||||
{ "label": "k45", "matrix": [4, 5], "w": 2.75, "x": 3.75, "y": 4 }, |
||||
{ "label": "k46", "matrix": [4, 6], "w": 2.25, "x": 6.5, "y": 4 }, |
||||
{ "label": "k90", "matrix": [9, 0], "w": 1.25, "x": 8.75, "y": 4 }, |
||||
{ "label": "k92", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 }, |
||||
{ "label": "k93", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 }, |
||||
{ "label": "k94", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "k95", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "k96", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "k97", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
} |
||||
} |
||||
} |
||||
|
@ -0,0 +1,16 @@ |
||||
# Clueboard 66% HotSwap |
||||
|
||||
 |
||||
|
||||
A fully customizable 66% keyboard with Hot Swap sockets. |
||||
|
||||
* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) |
||||
* Hardware Supported: Clueboard 66% HotSwap PCB |
||||
* 2.9 (gen1) |
||||
* Hardware Availability: [clueboard.co](https://clueboard.co/) |
||||
|
||||
Make example for this keyboard (after setting up your build environment): |
||||
|
||||
make clueboard/66_hotswap/gen1:default |
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
@ -1,245 +1,198 @@ |
||||
{ |
||||
"keyboard_name": "Clueboard 66% HotSwap Prototype", |
||||
"maintainer": "skullydazed", |
||||
"width": 16.5, |
||||
"height": 5, |
||||
"layouts": { |
||||
"LAYOUT_all": { |
||||
"layout": [ |
||||
{"x": 0, "y": 0}, |
||||
{"x": 1, "y": 0}, |
||||
{"x": 2, "y": 0}, |
||||
{"x": 3, "y": 0}, |
||||
{"x": 4, "y": 0}, |
||||
{"x": 5, "y": 0}, |
||||
{"x": 6, "y": 0}, |
||||
{"x": 7, "y": 0}, |
||||
{"x": 8, "y": 0}, |
||||
{"x": 9, "y": 0}, |
||||
{"x": 10, "y": 0}, |
||||
{"x": 11, "y": 0}, |
||||
{"x": 12, "y": 0}, |
||||
{"x": 13, "y": 0, "w": 2}, |
||||
|
||||
{"x": 15.5, "y": 0}, |
||||
|
||||
{"x": 0, "y": 1, "w": 1.5}, |
||||
{"x": 1.5, "y": 1}, |
||||
{"x": 2.5, "y": 1}, |
||||
{"x": 3.5, "y": 1}, |
||||
{"x": 4.5, "y": 1}, |
||||
{"x": 5.5, "y": 1}, |
||||
{"x": 6.5, "y": 1}, |
||||
{"x": 7.5, "y": 1}, |
||||
{"x": 8.5, "y": 1}, |
||||
{"x": 9.5, "y": 1}, |
||||
{"x": 10.5, "y": 1}, |
||||
{"x": 11.5, "y": 1}, |
||||
{"x": 12.5, "y": 1}, |
||||
{"x": 13.5, "y": 1, "w": 1.5}, |
||||
|
||||
{"x": 15.5, "y": 1}, |
||||
|
||||
{"x": 0, "y": 2, "w": 1.75}, |
||||
{"x": 1.75, "y": 2}, |
||||
{"x": 2.75, "y": 2}, |
||||
{"x": 3.75, "y": 2}, |
||||
{"x": 4.75, "y": 2}, |
||||
{"x": 5.75, "y": 2}, |
||||
{"x": 6.75, "y": 2}, |
||||
{"x": 7.75, "y": 2}, |
||||
{"x": 8.75, "y": 2}, |
||||
{"x": 9.75, "y": 2}, |
||||
{"x": 10.75, "y": 2}, |
||||
{"x": 11.75, "y": 2}, |
||||
{"x": 12.75, "y": 2, "w": 2.25}, |
||||
|
||||
{"x": 0, "y": 3, "w": 1.25}, |
||||
{"x": 1.25, "y": 3}, |
||||
{"x": 2.25, "y": 3}, |
||||
{"x": 3.25, "y": 3}, |
||||
{"x": 4.25, "y": 3}, |
||||
{"x": 5.25, "y": 3}, |
||||
{"x": 6.25, "y": 3}, |
||||
{"x": 7.25, "y": 3}, |
||||
{"x": 8.25, "y": 3}, |
||||
{"x": 9.25, "y": 3}, |
||||
{"x": 10.25, "y": 3}, |
||||
{"x": 11.25, "y": 3}, |
||||
{"x": 12.25, "y": 3}, |
||||
{"x": 13.25, "y": 3, "w": 1.25}, |
||||
{"x": 14.5, "y": 3}, |
||||
|
||||
{"x": 0, "y": 4, "w": 1.25}, |
||||
{"x": 1.25, "y": 4, "w": 1.25}, |
||||
{"x": 2.5, "y": 4, "w": 1.25}, |
||||
{"x": 3.75, "y": 4, "w": 2.75}, |
||||
{"x": 6.5, "y": 4, "w": 2.25}, |
||||
{"x": 8.75, "y": 4, "w": 1.25}, |
||||
{"x": 10, "y": 4, "w": 1.25}, |
||||
{"x": 11.25, "y": 4}, |
||||
{"x": 12.25, "y": 4, "w": 1.25}, |
||||
{"x": 13.5, "y": 4}, |
||||
{"x": 14.5, "y": 4}, |
||||
{"x": 15.5, "y": 4} |
||||
] |
||||
}, |
||||
"LAYOUT": { |
||||
"layout": [ |
||||
{"x": 0, "y": 0}, |
||||
{"x": 1, "y": 0}, |
||||
{"x": 2, "y": 0}, |
||||
{"x": 3, "y": 0}, |
||||
{"x": 4, "y": 0}, |
||||
{"x": 5, "y": 0}, |
||||
{"x": 6, "y": 0}, |
||||
{"x": 7, "y": 0}, |
||||
{"x": 8, "y": 0}, |
||||
{"x": 9, "y": 0}, |
||||
{"x": 10, "y": 0}, |
||||
{"x": 11, "y": 0}, |
||||
{"x": 12, "y": 0}, |
||||
{"x": 13, "y": 0, "w": 2}, |
||||
|
||||
{"x": 15.5, "y": 0}, |
||||
|
||||
{"x": 0, "y": 1, "w": 1.5}, |
||||
{"x": 1.5, "y": 1}, |
||||
{"x": 2.5, "y": 1}, |
||||
{"x": 3.5, "y": 1}, |
||||
{"x": 4.5, "y": 1}, |
||||
{"x": 5.5, "y": 1}, |
||||
{"x": 6.5, "y": 1}, |
||||
{"x": 7.5, "y": 1}, |
||||
{"x": 8.5, "y": 1}, |
||||
{"x": 9.5, "y": 1}, |
||||
{"x": 10.5, "y": 1}, |
||||
{"x": 11.5, "y": 1}, |
||||
{"x": 12.5, "y": 1}, |
||||
{"x": 13.5, "y": 1, "w": 1.5}, |
||||
|
||||
{"x": 15.5, "y": 1}, |
||||
|
||||
{"x": 0, "y": 2, "w": 1.75}, |
||||
{"x": 1.75, "y": 2}, |
||||
{"x": 2.75, "y": 2}, |
||||
{"x": 3.75, "y": 2}, |
||||
{"x": 4.75, "y": 2}, |
||||
{"x": 5.75, "y": 2}, |
||||
{"x": 6.75, "y": 2}, |
||||
{"x": 7.75, "y": 2}, |
||||
{"x": 8.75, "y": 2}, |
||||
{"x": 9.75, "y": 2}, |
||||
{"x": 10.75, "y": 2}, |
||||
{"x": 11.75, "y": 2}, |
||||
{"x": 12.75, "y": 2, "w": 2.25}, |
||||
|
||||
{"x": 0, "y": 3, "w": 2.25}, |
||||
{"x": 2.25, "y": 3}, |
||||
{"x": 3.25, "y": 3}, |
||||
{"x": 4.25, "y": 3}, |
||||
{"x": 5.25, "y": 3}, |
||||
{"x": 6.25, "y": 3}, |
||||
{"x": 7.25, "y": 3}, |
||||
{"x": 8.25, "y": 3}, |
||||
{"x": 9.25, "y": 3}, |
||||
{"x": 10.25, "y": 3}, |
||||
{"x": 11.25, "y": 3}, |
||||
{"x": 12.25, "y": 3, "w": 2.25}, |
||||
|
||||
{"x": 14.5, "y": 3}, |
||||
|
||||
{"x": 0, "y": 4, "w": 1.25}, |
||||
{"x": 1.25, "y": 4, "w": 1.25}, |
||||
{"x": 2.5, "y": 4, "w": 1.25}, |
||||
{"x": 3.75, "y": 4, "w": 2.75}, |
||||
{"x": 6.5, "y": 4, "w": 2.25}, |
||||
{"x": 8.75, "y": 4, "w": 1.25}, |
||||
{"x": 10, "y": 4, "w": 1.25}, |
||||
{"x": 11.25, "y": 4}, |
||||
{"x": 12.25, "y": 4, "w": 1.25}, |
||||
{"x": 13.5, "y": 4}, |
||||
{"x": 14.5, "y": 4}, |
||||
{"x": 15.5, "y": 4} |
||||
] |
||||
}, |
||||
"LAYOUT_66_ansi": { |
||||
"layout": [ |
||||
{"x": 0, "y": 0}, |
||||
{"x": 1, "y": 0}, |
||||
{"x": 2, "y": 0}, |
||||
{"x": 3, "y": 0}, |
||||
{"x": 4, "y": 0}, |
||||
{"x": 5, "y": 0}, |
||||
{"x": 6, "y": 0}, |
||||
{"x": 7, "y": 0}, |
||||
{"x": 8, "y": 0}, |
||||
{"x": 9, "y": 0}, |
||||
{"x": 10, "y": 0}, |
||||
{"x": 11, "y": 0}, |
||||
{"x": 12, "y": 0}, |
||||
{"x": 13, "y": 0, "w": 2}, |
||||
|
||||
{"x": 15.5, "y": 0}, |
||||
|
||||
{"x": 0, "y": 1, "w": 1.5}, |
||||
{"x": 1.5, "y": 1}, |
||||
{"x": 2.5, "y": 1}, |
||||
{"x": 3.5, "y": 1}, |
||||
{"x": 4.5, "y": 1}, |
||||
{"x": 5.5, "y": 1}, |
||||
{"x": 6.5, "y": 1}, |
||||
{"x": 7.5, "y": 1}, |
||||
{"x": 8.5, "y": 1}, |
||||
{"x": 9.5, "y": 1}, |
||||
{"x": 10.5, "y": 1}, |
||||
{"x": 11.5, "y": 1}, |
||||
{"x": 12.5, "y": 1}, |
||||
{"x": 13.5, "y": 1, "w": 1.5}, |
||||
|
||||
{"x": 15.5, "y": 1}, |
||||
|
||||
{"x": 0, "y": 2, "w": 1.75}, |
||||
{"x": 1.75, "y": 2}, |
||||
{"x": 2.75, "y": 2}, |
||||
{"x": 3.75, "y": 2}, |
||||
{"x": 4.75, "y": 2}, |
||||
{"x": 5.75, "y": 2}, |
||||
{"x": 6.75, "y": 2}, |
||||
{"x": 7.75, "y": 2}, |
||||
{"x": 8.75, "y": 2}, |
||||
{"x": 9.75, "y": 2}, |
||||
{"x": 10.75, "y": 2}, |
||||
{"x": 11.75, "y": 2}, |
||||
{"x": 12.75, "y": 2, "w": 2.25}, |
||||
|
||||
{"x": 0, "y": 3, "w": 2.25}, |
||||
{"x": 2.25, "y": 3}, |
||||
{"x": 3.25, "y": 3}, |
||||
{"x": 4.25, "y": 3}, |
||||
{"x": 5.25, "y": 3}, |
||||
{"x": 6.25, "y": 3}, |
||||
{"x": 7.25, "y": 3}, |
||||
{"x": 8.25, "y": 3}, |
||||
{"x": 9.25, "y": 3}, |
||||
{"x": 10.25, "y": 3}, |
||||
{"x": 11.25, "y": 3}, |
||||
{"x": 12.25, "y": 3, "w": 2.25}, |
||||
|
||||
{"x": 14.5, "y": 3}, |
||||
|
||||
{"x": 0, "y": 4, "w": 1.25}, |
||||
{"x": 1.25, "y": 4, "w": 1.25}, |
||||
{"x": 2.5, "y": 4, "w": 1.25}, |
||||
{"x": 3.75, "y": 4, "w": 6.25}, |
||||
{"x": 10, "y": 4, "w": 1.25}, |
||||
{"x": 11.25, "y": 4}, |
||||
{"x": 12.25, "y": 4, "w": 1.25}, |
||||
|
||||
{"x": 13.5, "y": 4}, |
||||
{"x": 14.5, "y": 4}, |
||||
{"x": 15.5, "y": 4} |
||||
] |
||||
} |
||||
"manufacturer": "Clueboard", |
||||
"keyboard_name": "Clueboard 66% HotSwap Prototype", |
||||
"maintainer": "skullydazed", |
||||
"height": 5, |
||||
"width": 16.5, |
||||
"debounce": "5", |
||||
"diode_direction": "COL2ROW", |
||||
"features": { |
||||
"audio": true, |
||||
"backlight": true, |
||||
"bluetooth": false, |
||||
"bootmagic": false, |
||||
"command": false, |
||||
"console": true, |
||||
"extrakey": true, |
||||
"midi": false, |
||||
"mousekey": false, |
||||
"nkro": true, |
||||
"rgblight": true, |
||||
"unicode": false |
||||
}, |
||||
"indicators": { |
||||
"caps_lock": "B4" |
||||
}, |
||||
"matrix_pins": { |
||||
"cols": ["F0", " F1", " F4", " F5", " F6", " F7", " E6", " B1"], |
||||
"rows": ["B2", " C7", " C6", " B6", " B5", " B0", " B3", " D5", " D3", " D2"] |
||||
}, |
||||
"rgblight": { |
||||
"animations": { |
||||
"all": true |
||||
}, |
||||
"brightness_steps": "17", |
||||
"hue_steps": "32", |
||||
"led_count": "26", |
||||
"pin": "D7", |
||||
"saturation_steps": "17" |
||||
}, |
||||
"usb": { |
||||
"device_ver": "0x0001", |
||||
"pid": "0x2390", |
||||
"vid": "0xC1ED" |
||||
}, |
||||
"community_layouts": ["66_ansi"], |
||||
"layout_aliases": { |
||||
"KEYMAP": "LAYOUT_all", |
||||
"LAYOUT": "LAYOUT_all" |
||||
}, |
||||
"layouts": { |
||||
"LAYOUT_66_ansi": { |
||||
"key_count": 66, |
||||
"layout": [ |
||||
{ "label": "k00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "k01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "k02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "k03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "k04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "k05", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "k06", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "k07", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "k50", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "k51", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": "k52", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "k53", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "k54", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "k56", "matrix": [5, 6], "w": 2, "x": 13, "y": 0 }, |
||||
{ "label": "k57", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "k11", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "k12", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "k13", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "k14", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "k15", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "k16", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "k17", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "k60", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "k61", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "k62", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "k63", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "k64", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "k65", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, |
||||
{ "label": "k67", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "k21", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "k22", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "k23", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "k24", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "k25", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "k26", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "k27", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "k70", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "k71", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": "k72", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "k73", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "k75", "matrix": [7, 5], "w": 2.25, "x": 12.75, "y": 2 }, |
||||
{ "label": "k30", "matrix": [3, 0], "w": 2.25, "x": 0, "y": 3 }, |
||||
{ "label": "k32", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "k33", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "k34", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "k35", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "k36", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "k37", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "k80", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "k81", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": "k82", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "k83", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "k85", "matrix": [8, 5], "w": 2.25, "x": 12.25, "y": 3 }, |
||||
{ "label": "k86", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "k40", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "k41", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, |
||||
{ "label": "k42", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, |
||||
{ "label": "k46", "matrix": [4, 6], "w": 6.25, "x": 3.75, "y": 4 }, |
||||
{ "label": "k92", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 }, |
||||
{ "label": "k93", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 }, |
||||
{ "label": "k94", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "k95", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "k96", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "k97", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
}, |
||||
"LAYOUT_all": { |
||||
"key_count": 70, |
||||
"layout": [ |
||||
{ "label": "k00", "matrix": [0, 0], "w": 1, "x": 0, "y": 0 }, |
||||
{ "label": "k01", "matrix": [0, 1], "w": 1, "x": 1, "y": 0 }, |
||||
{ "label": "k02", "matrix": [0, 2], "w": 1, "x": 2, "y": 0 }, |
||||
{ "label": "k03", "matrix": [0, 3], "w": 1, "x": 3, "y": 0 }, |
||||
{ "label": "k04", "matrix": [0, 4], "w": 1, "x": 4, "y": 0 }, |
||||
{ "label": "k05", "matrix": [0, 5], "w": 1, "x": 5, "y": 0 }, |
||||
{ "label": "k06", "matrix": [0, 6], "w": 1, "x": 6, "y": 0 }, |
||||
{ "label": "k07", "matrix": [0, 7], "w": 1, "x": 7, "y": 0 }, |
||||
{ "label": "k50", "matrix": [5, 0], "w": 1, "x": 8, "y": 0 }, |
||||
{ "label": "k51", "matrix": [5, 1], "w": 1, "x": 9, "y": 0 }, |
||||
{ "label": "k52", "matrix": [5, 2], "w": 1, "x": 10, "y": 0 }, |
||||
{ "label": "k53", "matrix": [5, 3], "w": 1, "x": 11, "y": 0 }, |
||||
{ "label": "k54", "matrix": [5, 4], "w": 1, "x": 12, "y": 0 }, |
||||
{ "label": "k56", "matrix": [5, 6], "w": 2, "x": 13, "y": 0 }, |
||||
{ "label": "k57", "matrix": [5, 7], "w": 1, "x": 15.5, "y": 0 }, |
||||
{ "label": "k10", "matrix": [1, 0], "w": 1.5, "x": 0, "y": 1 }, |
||||
{ "label": "k11", "matrix": [1, 1], "w": 1, "x": 1.5, "y": 1 }, |
||||
{ "label": "k12", "matrix": [1, 2], "w": 1, "x": 2.5, "y": 1 }, |
||||
{ "label": "k13", "matrix": [1, 3], "w": 1, "x": 3.5, "y": 1 }, |
||||
{ "label": "k14", "matrix": [1, 4], "w": 1, "x": 4.5, "y": 1 }, |
||||
{ "label": "k15", "matrix": [1, 5], "w": 1, "x": 5.5, "y": 1 }, |
||||
{ "label": "k16", "matrix": [1, 6], "w": 1, "x": 6.5, "y": 1 }, |
||||
{ "label": "k17", "matrix": [1, 7], "w": 1, "x": 7.5, "y": 1 }, |
||||
{ "label": "k60", "matrix": [6, 0], "w": 1, "x": 8.5, "y": 1 }, |
||||
{ "label": "k61", "matrix": [6, 1], "w": 1, "x": 9.5, "y": 1 }, |
||||
{ "label": "k62", "matrix": [6, 2], "w": 1, "x": 10.5, "y": 1 }, |
||||
{ "label": "k63", "matrix": [6, 3], "w": 1, "x": 11.5, "y": 1 }, |
||||
{ "label": "k64", "matrix": [6, 4], "w": 1, "x": 12.5, "y": 1 }, |
||||
{ "label": "k65", "matrix": [6, 5], "w": 1.5, "x": 13.5, "y": 1 }, |
||||
{ "label": "k67", "matrix": [6, 7], "w": 1, "x": 15.5, "y": 1 }, |
||||
{ "label": "k20", "matrix": [2, 0], "w": 1.75, "x": 0, "y": 2 }, |
||||
{ "label": "k21", "matrix": [2, 1], "w": 1, "x": 1.75, "y": 2 }, |
||||
{ "label": "k22", "matrix": [2, 2], "w": 1, "x": 2.75, "y": 2 }, |
||||
{ "label": "k23", "matrix": [2, 3], "w": 1, "x": 3.75, "y": 2 }, |
||||
{ "label": "k24", "matrix": [2, 4], "w": 1, "x": 4.75, "y": 2 }, |
||||
{ "label": "k25", "matrix": [2, 5], "w": 1, "x": 5.75, "y": 2 }, |
||||
{ "label": "k26", "matrix": [2, 6], "w": 1, "x": 6.75, "y": 2 }, |
||||
{ "label": "k27", "matrix": [2, 7], "w": 1, "x": 7.75, "y": 2 }, |
||||
{ "label": "k70", "matrix": [7, 0], "w": 1, "x": 8.75, "y": 2 }, |
||||
{ "label": "k71", "matrix": [7, 1], "w": 1, "x": 9.75, "y": 2 }, |
||||
{ "label": "k72", "matrix": [7, 2], "w": 1, "x": 10.75, "y": 2 }, |
||||
{ "label": "k73", "matrix": [7, 3], "w": 1, "x": 11.75, "y": 2 }, |
||||
{ "label": "k75", "matrix": [7, 5], "w": 2.25, "x": 12.75, "y": 2 }, |
||||
{ "label": "k30", "matrix": [3, 0], "w": 1.25, "x": 0, "y": 3 }, |
||||
{ "label": "k31", "matrix": [3, 1], "w": 1, "x": 1.25, "y": 3 }, |
||||
{ "label": "k32", "matrix": [3, 2], "w": 1, "x": 2.25, "y": 3 }, |
||||
{ "label": "k33", "matrix": [3, 3], "w": 1, "x": 3.25, "y": 3 }, |
||||
{ "label": "k34", "matrix": [3, 4], "w": 1, "x": 4.25, "y": 3 }, |
||||
{ "label": "k35", "matrix": [3, 5], "w": 1, "x": 5.25, "y": 3 }, |
||||
{ "label": "k36", "matrix": [3, 6], "w": 1, "x": 6.25, "y": 3 }, |
||||
{ "label": "k37", "matrix": [3, 7], "w": 1, "x": 7.25, "y": 3 }, |
||||
{ "label": "k80", "matrix": [8, 0], "w": 1, "x": 8.25, "y": 3 }, |
||||
{ "label": "k81", "matrix": [8, 1], "w": 1, "x": 9.25, "y": 3 }, |
||||
{ "label": "k82", "matrix": [8, 2], "w": 1, "x": 10.25, "y": 3 }, |
||||
{ "label": "k83", "matrix": [8, 3], "w": 1, "x": 11.25, "y": 3 }, |
||||
{ "label": "k84", "matrix": [8, 4], "w": 1, "x": 12.25, "y": 3 }, |
||||
{ "label": "k85", "matrix": [8, 5], "w": 1.25, "x": 13.25, "y": 3 }, |
||||
{ "label": "k86", "matrix": [8, 6], "w": 1, "x": 14.5, "y": 3 }, |
||||
{ "label": "k40", "matrix": [4, 0], "w": 1.25, "x": 0, "y": 4 }, |
||||
{ "label": "k41", "matrix": [4, 1], "w": 1.25, "x": 1.25, "y": 4 }, |
||||
{ "label": "k42", "matrix": [4, 2], "w": 1.25, "x": 2.5, "y": 4 }, |
||||
{ "label": "k45", "matrix": [4, 5], "w": 2.75, "x": 3.75, "y": 4 }, |
||||
{ "label": "k46", "matrix": [4, 6], "w": 2.25, "x": 6.5, "y": 4 }, |
||||
{ "label": "k90", "matrix": [9, 0], "w": 1.25, "x": 8.75, "y": 4 }, |
||||
{ "label": "k92", "matrix": [9, 2], "w": 1.25, "x": 10, "y": 4 }, |
||||
{ "label": "k93", "matrix": [9, 3], "w": 1, "x": 11.25, "y": 4 }, |
||||
{ "label": "k94", "matrix": [9, 4], "w": 1.25, "x": 12.25, "y": 4 }, |
||||
{ "label": "k95", "matrix": [9, 5], "w": 1, "x": 13.5, "y": 4 }, |
||||
{ "label": "k96", "matrix": [9, 6], "w": 1, "x": 14.5, "y": 4 }, |
||||
{ "label": "k97", "matrix": [9, 7], "w": 1, "x": 15.5, "y": 4 } |
||||
] |
||||
} |
||||
} |
||||
} |
||||
|
@ -0,0 +1,16 @@ |
||||
# Clueboard 66% HotSwap |
||||
|
||||
 |
||||
|
||||
A fully customizable 66% keyboard with Hot Swap sockets. |
||||
|
||||
* Keyboard Maintainer: [Zach White](https://github.com/skullydazed) |
||||
* Hardware Supported: Clueboard 66% HotSwap Prototype PCB |
||||
* 2.8 (prototype) |
||||
* Hardware Availability: [clueboard.co](https://clueboard.co/) |
||||
|
||||
Make example for this keyboard (after setting up your build environment): |
||||
|
||||
make clueboard/66_hotswap/prototype:default |
||||
|
||||
See the [build environment setup](https://docs.qmk.fm/#/getting_started_build_tools) and the [make instructions](https://docs.qmk.fm/#/getting_started_make_guide) for more information. Brand new to QMK? Start with our [Complete Newbs Guide](https://docs.qmk.fm/#/newbs). |
@ -0,0 +1 @@ |
||||
Default keymap for the Clueboard California Macropad. |
@ -1,4 +1,8 @@ |
||||
{ |
||||
"manufacturer": "Clueboard", |
||||
"maintainer": "skullydazed" |
||||
"maintainer": "skullydazed", |
||||
"usb": { |
||||
"device_ver": "0x0001", |
||||
"vid": "0xC1ED" |
||||
} |
||||
} |
||||
|
@ -1,3 +1,7 @@ |
||||
from . import api |
||||
from . import config_h |
||||
from . import docs |
||||
from . import info_json |
||||
from . import layouts |
||||
from . import rgb_breathe_table |
||||
from . import rules_mk |
||||
|
@ -0,0 +1,277 @@ |
||||
"""Used by the make system to generate info_config.h from info.json. |
||||
""" |
||||
from milc import cli |
||||
|
||||
from qmk.constants import LED_INDICATORS |
||||
from qmk.decorators import automagic_keyboard, automagic_keymap |
||||
from qmk.info import info_json, rgblight_animations, rgblight_properties, rgblight_toggles |
||||
from qmk.path import is_keyboard, normpath |
||||
|
||||
usb_properties = { |
||||
'vid': 'VENDOR_ID', |
||||
'pid': 'PRODUCT_ID', |
||||
'device_ver': 'DEVICE_VER', |
||||
} |
||||
|
||||
|
||||
def debounce(debounce): |
||||
"""Return the config.h lines that set debounce |
||||
""" |
||||
return """ |
||||
#ifndef DEBOUNCE |
||||
# define DEBOUNCE %s |
||||
#endif // DEBOUNCE |
||||
""" % debounce |
||||
|
||||
|
||||
def diode_direction(diode_direction): |
||||
"""Return the config.h lines that set diode direction |
||||
""" |
||||
return """ |
||||
#ifndef DIODE_DIRECTION |
||||
# define DIODE_DIRECTION %s |
||||
#endif // DIODE_DIRECTION |
||||
""" % diode_direction |
||||
|
||||
|
||||
def keyboard_name(keyboard_name): |
||||
"""Return the config.h lines that set the keyboard's name. |
||||
""" |
||||
return """ |
||||
#ifndef DESCRIPTION |
||||
# define DESCRIPTION %s |
||||
#endif // DESCRIPTION |
||||
|
||||
#ifndef PRODUCT |
||||
# define PRODUCT %s |
||||
#endif // PRODUCT |
||||
""" % (keyboard_name, keyboard_name) |
||||
|
||||
|
||||
def manufacturer(manufacturer): |
||||
"""Return the config.h lines that set the manufacturer. |
||||
""" |
||||
return """ |
||||
#ifndef MANUFACTURER |
||||
# define MANUFACTURER %s |
||||
#endif // MANUFACTURER |
||||
""" % (manufacturer) |
||||
|
||||
|
||||
def direct_pins(direct_pins): |
||||
"""Return the config.h lines that set the direct pins. |
||||
""" |
||||
rows = [] |
||||
|
||||
for row in direct_pins: |
||||
cols = ','.join([col or 'NO_PIN' for col in row]) |
||||
rows.append('{' + cols + '}') |
||||
|
||||
col_count = len(direct_pins[0]) |
||||
row_count = len(direct_pins) |
||||
|
||||
return """ |
||||
#ifndef MATRIX_COLS |
||||
# define MATRIX_COLS %s |
||||
#endif // MATRIX_COLS |
||||
|
||||
#ifndef MATRIX_ROWS |
||||
# define MATRIX_ROWS %s |
||||
#endif // MATRIX_ROWS |
||||
|
||||
#ifndef DIRECT_PINS |
||||
# define DIRECT_PINS {%s} |
||||
#endif // DIRECT_PINS |
||||
""" % (col_count, row_count, ','.join(rows)) |
||||
|
||||
|
||||
def col_pins(col_pins): |
||||
"""Return the config.h lines that set the column pins. |
||||
""" |
||||
cols = ','.join(col_pins) |
||||
col_num = len(col_pins) |
||||
|
||||
return """ |
||||
#ifndef MATRIX_COLS |
||||
# define MATRIX_COLS %s |
||||
#endif // MATRIX_COLS |
||||
|
||||
#ifndef MATRIX_COL_PINS |
||||
# define MATRIX_COL_PINS {%s} |
||||
#endif // MATRIX_COL_PINS |
||||
""" % (col_num, cols) |
||||
|
||||
|
||||
def row_pins(row_pins): |
||||
"""Return the config.h lines that set the row pins. |
||||
""" |
||||
rows = ','.join(row_pins) |
||||
row_num = len(row_pins) |
||||
|
||||
return """ |
||||
#ifndef MATRIX_ROWS |
||||
# define MATRIX_ROWS %s |
||||
#endif // MATRIX_ROWS |
||||
|
||||
#ifndef MATRIX_ROW_PINS |
||||
# define MATRIX_ROW_PINS {%s} |
||||
#endif // MATRIX_ROW_PINS |
||||
""" % (row_num, rows) |
||||
|
||||
|
||||
def indicators(config): |
||||
"""Return the config.h lines that setup LED indicators. |
||||
""" |
||||
defines = [] |
||||
|
||||
for led, define in LED_INDICATORS.items(): |
||||
if led in config: |
||||
defines.append('') |
||||
defines.append('#ifndef %s' % (define,)) |
||||
defines.append('# define %s %s' % (define, config[led])) |
||||
defines.append('#endif // %s' % (define,)) |
||||
|
||||
return '\n'.join(defines) |
||||
|
||||
|
||||
def layout_aliases(layout_aliases): |
||||
"""Return the config.h lines that setup layout aliases. |
||||
""" |
||||
defines = [] |
||||
|
||||
for alias, layout in layout_aliases.items(): |
||||
defines.append('') |
||||
defines.append('#ifndef %s' % (alias,)) |
||||
defines.append('# define %s %s' % (alias, layout)) |
||||
defines.append('#endif // %s' % (alias,)) |
||||
|
||||
return '\n'.join(defines) |
||||
|
||||
|
||||
def matrix_pins(matrix_pins): |
||||
"""Add the matrix config to the config.h. |
||||
""" |
||||
pins = [] |
||||
|
||||
if 'direct' in matrix_pins: |
||||
pins.append(direct_pins(matrix_pins['direct'])) |
||||
|
||||
if 'cols' in matrix_pins: |
||||
pins.append(col_pins(matrix_pins['cols'])) |
||||
|
||||
if 'rows' in matrix_pins: |
||||
pins.append(row_pins(matrix_pins['rows'])) |
||||
|
||||
return '\n'.join(pins) |
||||
|
||||
|
||||
def rgblight(config): |
||||
"""Return the config.h lines that setup rgblight. |
||||
""" |
||||
rgblight_config = [] |
||||
|
||||
for json_key, config_key in rgblight_properties.items(): |
||||
if json_key in config: |
||||
rgblight_config.append('') |
||||
rgblight_config.append('#ifndef %s' % (config_key,)) |
||||
rgblight_config.append('# define %s %s' % (config_key, config[json_key])) |
||||
rgblight_config.append('#endif // %s' % (config_key,)) |
||||
|
||||
for json_key, config_key in rgblight_toggles.items(): |
||||
if config.get(json_key): |
||||
rgblight_config.append('') |
||||
rgblight_config.append('#ifndef %s' % (config_key,)) |
||||
rgblight_config.append('# define %s' % (config_key,)) |
||||
rgblight_config.append('#endif // %s' % (config_key,)) |
||||
|
||||
for json_key, config_key in rgblight_animations.items(): |
||||
if 'animations' in config and config['animations'].get(json_key): |
||||
rgblight_config.append('') |
||||
rgblight_config.append('#ifndef %s' % (config_key,)) |
||||
rgblight_config.append('# define %s' % (config_key,)) |
||||
rgblight_config.append('#endif // %s' % (config_key,)) |
||||
|
||||
return '\n'.join(rgblight_config) |
||||
|
||||
|
||||
def usb_properties(usb_props): |
||||
"""Return the config.h lines that setup USB params. |
||||
""" |
||||
usb_lines = [] |
||||
|
||||
for info_name, config_name in usb_props.items(): |
||||
if info_name in usb_props: |
||||
usb_lines.append('') |
||||
usb_lines.append('#ifndef ' + config_name) |
||||
usb_lines.append('# define %s %s' % (config_name, usb_props[info_name])) |
||||
usb_lines.append('#endif // ' + config_name) |
||||
|
||||
return '\n'.join(usb_lines) |
||||
|
||||
|
||||
@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') |
||||
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") |
||||
@cli.argument('-kb', '--keyboard', help='Keyboard to generate config.h for.') |
||||
@cli.subcommand('Used by the make system to generate info_config.h from info.json', hidden=True) |
||||
@automagic_keyboard |
||||
@automagic_keymap |
||||
def generate_config_h(cli): |
||||
"""Generates the info_config.h file. |
||||
""" |
||||
# Determine our keyboard(s) |
||||
if not cli.config.generate_config_h.keyboard: |
||||
cli.log.error('Missing paramater: --keyboard') |
||||
cli.subcommands['info'].print_help() |
||||
return False |
||||
|
||||
if not is_keyboard(cli.config.generate_config_h.keyboard): |
||||
cli.log.error('Invalid keyboard: "%s"', cli.config.generate_config_h.keyboard) |
||||
return False |
||||
|
||||
# Build the info.json file |
||||
kb_info_json = info_json(cli.config.generate_config_h.keyboard) |
||||
|
||||
# Build the info_config.h file. |
||||
config_h_lines = ['/* This file was generated by `qmk generate-config-h`. Do not edit or copy.' ' */', '', '#pragma once'] |
||||
|
||||
if 'debounce' in kb_info_json: |
||||
config_h_lines.append(debounce(kb_info_json['debounce'])) |
||||
|
||||
if 'diode_direction' in kb_info_json: |
||||
config_h_lines.append(diode_direction(kb_info_json['diode_direction'])) |
||||
|
||||
if 'indicators' in kb_info_json: |
||||
config_h_lines.append(indicators(kb_info_json['indicators'])) |
||||
|
||||
if 'keyboard_name' in kb_info_json: |
||||
config_h_lines.append(keyboard_name(kb_info_json['keyboard_name'])) |
||||
|
||||
if 'layout_aliases' in kb_info_json: |
||||
config_h_lines.append(layout_aliases(kb_info_json['layout_aliases'])) |
||||
|
||||
if 'manufacturer' in kb_info_json: |
||||
config_h_lines.append(manufacturer(kb_info_json['manufacturer'])) |
||||
|
||||
if 'rgblight' in kb_info_json: |
||||
config_h_lines.append(rgblight(kb_info_json['rgblight'])) |
||||
|
||||
if 'matrix_pins' in kb_info_json: |
||||
config_h_lines.append(matrix_pins(kb_info_json['matrix_pins'])) |
||||
|
||||
if 'usb' in kb_info_json: |
||||
config_h_lines.append(usb_properties(kb_info_json['usb'])) |
||||
|
||||
# Show the results |
||||
config_h = '\n'.join(config_h_lines) |
||||
|
||||
if cli.args.output: |
||||
cli.args.output.parent.mkdir(parents=True, exist_ok=True) |
||||
if cli.args.output.exists(): |
||||
cli.args.output.replace(cli.args.output.name + '.bak') |
||||
cli.args.output.write_text(config_h) |
||||
|
||||
if not cli.args.quiet: |
||||
cli.log.info('Wrote info_config.h to %s.', cli.args.output) |
||||
|
||||
else: |
||||
print(config_h) |
@ -0,0 +1,49 @@ |
||||
"""Keyboard information script. |
||||
|
||||
Compile an info.json for a particular keyboard and pretty-print it. |
||||
""" |
||||
import json |
||||
|
||||
from milc import cli |
||||
|
||||
from qmk.info_json_encoder import InfoJSONEncoder |
||||
from qmk.decorators import automagic_keyboard, automagic_keymap |
||||
from qmk.info import info_json |
||||
from qmk.path import is_keyboard |
||||
|
||||
|
||||
@cli.argument('-kb', '--keyboard', help='Keyboard to show info for.') |
||||
@cli.argument('-km', '--keymap', help='Show the layers for a JSON keymap too.') |
||||
@cli.subcommand('Generate an info.json file for a keyboard.', hidden=False if cli.config.user.developer else True) |
||||
@automagic_keyboard |
||||
@automagic_keymap |
||||
def generate_info_json(cli): |
||||
"""Generate an info.json file for a keyboard |
||||
""" |
||||
# Determine our keyboard(s) |
||||
if not cli.config.generate_info_json.keyboard: |
||||
cli.log.error('Missing paramater: --keyboard') |
||||
cli.subcommands['info'].print_help() |
||||
return False |
||||
|
||||
if not is_keyboard(cli.config.generate_info_json.keyboard): |
||||
cli.log.error('Invalid keyboard: "%s"', cli.config.generate_info_json.keyboard) |
||||
return False |
||||
|
||||
# Build the info.json file |
||||
kb_info_json = info_json(cli.config.generate_info_json.keyboard) |
||||
pared_down_json = {} |
||||
|
||||
for key in ('manufacturer', 'maintainer', 'usb', 'keyboard_name', 'width', 'height', 'debounce', 'diode_direction', 'features', 'community_layouts', 'layout_aliases', 'matrix_pins', 'rgblight', 'url'): |
||||
if key in kb_info_json: |
||||
pared_down_json[key] = kb_info_json[key] |
||||
|
||||
pared_down_json['layouts'] = {} |
||||
if 'layouts' in pared_down_json: |
||||
for layout_name, layout in kb_info_json['layouts'].items(): |
||||
pared_down_json['layouts'][layout_name] = {} |
||||
pared_down_json['layouts'][layout_name]['key_count'] = layout.get('key_count', len(layout['layout'])) |
||||
pared_down_json['layouts'][layout_name]['layout'] = layout['layout'] |
||||
|
||||
# Display the results |
||||
print(json.dumps(pared_down_json, indent=2, cls=InfoJSONEncoder)) |
@ -0,0 +1,93 @@ |
||||
"""Used by the make system to generate layouts.h from info.json. |
||||
""" |
||||
from milc import cli |
||||
|
||||
from qmk.constants import COL_LETTERS, ROW_LETTERS |
||||
from qmk.decorators import automagic_keyboard, automagic_keymap |
||||
from qmk.info import info_json |
||||
from qmk.path import is_keyboard, normpath |
||||
|
||||
usb_properties = { |
||||
'vid': 'VENDOR_ID', |
||||
'pid': 'PRODUCT_ID', |
||||
'device_ver': 'DEVICE_VER', |
||||
} |
||||
|
||||
|
||||
@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') |
||||
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") |
||||
@cli.argument('-kb', '--keyboard', help='Keyboard to generate config.h for.') |
||||
@cli.subcommand('Used by the make system to generate layouts.h from info.json', hidden=True) |
||||
@automagic_keyboard |
||||
@automagic_keymap |
||||
def generate_layouts(cli): |
||||
"""Generates the layouts.h file. |
||||
""" |
||||
# Determine our keyboard(s) |
||||
if not cli.config.generate_layouts.keyboard: |
||||
cli.log.error('Missing paramater: --keyboard') |
||||
cli.subcommands['info'].print_help() |
||||
return False |
||||
|
||||
if not is_keyboard(cli.config.generate_layouts.keyboard): |
||||
cli.log.error('Invalid keyboard: "%s"', cli.config.generate_layouts.keyboard) |
||||
return False |
||||
|
||||
# Build the info.json file |
||||
kb_info_json = info_json(cli.config.generate_layouts.keyboard) |
||||
|
||||
# Build the layouts.h file. |
||||
layouts_h_lines = ['/* This file was generated by `qmk generate-layouts`. Do not edit or copy.' ' */', '', '#pragma once'] |
||||
|
||||
if 'direct' in kb_info_json['matrix_pins']: |
||||
col_num = len(kb_info_json['matrix_pins']['direct'][0]) |
||||
row_num = len(kb_info_json['matrix_pins']['direct']) |
||||
elif 'cols' in kb_info_json['matrix_pins'] and 'rows' in kb_info_json['matrix_pins']: |
||||
col_num = len(kb_info_json['matrix_pins']['cols']) |
||||
row_num = len(kb_info_json['matrix_pins']['rows']) |
||||
else: |
||||
cli.log.error('%s: Invalid matrix config.', cli.config.generate_layouts.keyboard) |
||||
return False |
||||
|
||||
for layout_name in kb_info_json['layouts']: |
||||
if kb_info_json['layouts'][layout_name]['c_macro']: |
||||
continue |
||||
|
||||
layout_keys = [] |
||||
layout_matrix = [['KC_NO' for i in range(col_num)] for i in range(row_num)] |
||||
|
||||
for i, key in enumerate(kb_info_json['layouts'][layout_name]['layout']): |
||||
row = key['matrix'][0] |
||||
col = key['matrix'][1] |
||||
identifier = 'k%s%s' % (ROW_LETTERS[row], COL_LETTERS[col]) |
||||
|
||||
try: |
||||
layout_matrix[row][col] = identifier |
||||
layout_keys.append(identifier) |
||||
except IndexError: |
||||
key_name = key.get('label', identifier) |
||||
cli.log.error('Matrix data out of bounds for layout %s at index %s (%s): %s, %s', layout_name, i, key_name, row, col) |
||||
return False |
||||
|
||||
layouts_h_lines.append('') |
||||
layouts_h_lines.append('#define %s(%s) {\\' % (layout_name, ', '.join(layout_keys))) |
||||
|
||||
rows = ', \\\n'.join(['\t {' + ', '.join(row) + '}' for row in layout_matrix]) |
||||
rows += ' \\' |
||||
layouts_h_lines.append(rows) |
||||
layouts_h_lines.append('}') |
||||
|
||||
# Show the results |
||||
layouts_h = '\n'.join(layouts_h_lines) + '\n' |
||||
|
||||
if cli.args.output: |
||||
cli.args.output.parent.mkdir(parents=True, exist_ok=True) |
||||
if cli.args.output.exists(): |
||||
cli.args.output.replace(cli.args.output.name + '.bak') |
||||
cli.args.output.write_text(layouts_h) |
||||
|
||||
if not cli.args.quiet: |
||||
cli.log.info('Wrote info_config.h to %s.', cli.args.output) |
||||
|
||||
else: |
||||
print(layouts_h) |
@ -0,0 +1,59 @@ |
||||
"""Used by the make system to generate a rules.mk |
||||
""" |
||||
from milc import cli |
||||
|
||||
from qmk.decorators import automagic_keyboard, automagic_keymap |
||||
from qmk.info import info_json |
||||
from qmk.path import is_keyboard, normpath |
||||
|
||||
|
||||
@cli.argument('-o', '--output', arg_only=True, type=normpath, help='File to write to') |
||||
@cli.argument('-q', '--quiet', arg_only=True, action='store_true', help="Quiet mode, only output error messages") |
||||
@cli.argument('-kb', '--keyboard', help='Keyboard to generate config.h for.') |
||||
@cli.subcommand('Used by the make system to generate info_config.h from info.json', hidden=True) |
||||
@automagic_keyboard |
||||
@automagic_keymap |
||||
def generate_rules_mk(cli): |
||||
"""Generates a rules.mk file from info.json. |
||||
""" |
||||
# Determine our keyboard(s) |
||||
if not cli.config.generate_rules_mk.keyboard: |
||||
cli.log.error('Missing paramater: --keyboard') |
||||
cli.subcommands['info'].print_help() |
||||
return False |
||||
|
||||
if not is_keyboard(cli.config.generate_rules_mk.keyboard): |
||||
cli.log.error('Invalid keyboard: "%s"', cli.config.generate_rules_mk.keyboard) |
||||
return False |
||||
|
||||
# Build the info.json file |
||||
kb_info_json = info_json(cli.config.generate_rules_mk.keyboard) |
||||
rules_mk_lines = ['# This file was generated by `qmk generate-rules-mk`. Do not edit or copy.', ''] |
||||
|
||||
# Find features that should be enabled |
||||
if 'features' in kb_info_json: |
||||
for feature, enabled in kb_info_json['features'].items(): |
||||
feature = feature.upper() |
||||
enabled = 'yes' if enabled else 'no' |
||||
rules_mk_lines.append(f'{feature}_ENABLE := {enabled}') |
||||
|
||||
# Add community layouts |
||||
if 'community_layouts' in kb_info_json: |
||||
rules_mk_lines.append(f'LAYOUTS = {" ".join(kb_info_json["community_layouts"])}') |
||||
|
||||
# Show the results |
||||
rules_mk = '\n'.join(rules_mk_lines) + '\n' |
||||
|
||||
if cli.args.output: |
||||
cli.args.output.parent.mkdir(parents=True, exist_ok=True) |
||||
if cli.args.output.exists(): |
||||
cli.args.output.replace(cli.args.output.name + '.bak') |
||||
cli.args.output.write_text(rules_mk) |
||||
|
||||
if cli.args.quiet: |
||||
print(cli.args.output) |
||||
else: |
||||
cli.log.info('Wrote info_config.h to %s.', cli.args.output) |
||||
|
||||
else: |
||||
print(rules_mk) |
@ -0,0 +1,96 @@ |
||||
"""Class that pretty-prints QMK info.json files. |
||||
""" |
||||
import json |
||||
from decimal import Decimal |
||||
|
||||
|
||||
class InfoJSONEncoder(json.JSONEncoder): |
||||
"""Custom encoder to make info.json's a little nicer to work with. |
||||
""" |
||||
container_types = (list, tuple, dict) |
||||
indentation_char = " " |
||||
|
||||
def __init__(self, *args, **kwargs): |
||||
super().__init__(*args, **kwargs) |
||||
self.indentation_level = 0 |
||||
|
||||
if not self.indent: |
||||
self.indent = 4 |
||||
|
||||
def encode(self, obj): |
||||
"""Encode JSON objects for QMK. |
||||
""" |
||||
if isinstance(obj, Decimal): |
||||
if obj == int(obj): # I can't believe Decimal objects don't have .is_integer() |
||||
return int(obj) |
||||
return float(obj) |
||||
|
||||
elif isinstance(obj, (list, tuple)): |
||||
if self._primitives_only(obj): |
||||
return "[" + ", ".join(self.encode(element) for element in obj) + "]" |
||||
|
||||
else: |
||||
self.indentation_level += 1 |
||||
output = [self.indent_str + self.encode(element) for element in obj] |
||||
self.indentation_level -= 1 |
||||
return "[\n" + ",\n".join(output) + "\n" + self.indent_str + "]" |
||||
|
||||
elif isinstance(obj, dict): |
||||
if obj: |
||||
if self.indentation_level == 4: |
||||
# These are part of a layout, put them on a single line. |
||||
return "{ " + ", ".join(f"{self.encode(key)}: {self.encode(element)}" for key, element in sorted(obj.items())) + " }" |
||||
|
||||
else: |
||||
self.indentation_level += 1 |
||||
output = [self.indent_str + f"{json.dumps(key)}: {self.encode(value)}" for key, value in sorted(obj.items(), key=self.sort_root_dict)] |
||||
self.indentation_level -= 1 |
||||
return "{\n" + ",\n".join(output) + "\n" + self.indent_str + "}" |
||||
else: |
||||
return "{}" |
||||
else: |
||||
return super().encode(obj) |
||||
|
||||
def _primitives_only(self, obj): |
||||
"""Returns true if the object doesn't have any container type objects (list, tuple, dict). |
||||
""" |
||||
if isinstance(obj, dict): |
||||
obj = obj.values() |
||||
|
||||
return not any(isinstance(element, self.container_types) for element in obj) |
||||
|
||||
def sort_root_dict(self, key): |
||||
"""Forces layout to the back of the sort order. |
||||
""" |
||||
key = key[0] |
||||
|
||||
if self.indentation_level == 1: |
||||
if key == 'manufacturer': |
||||
return '10keyboard_name' |
||||
|
||||
elif key == 'keyboard_name': |
||||
return '11keyboard_name' |
||||
|
||||
elif key == 'maintainer': |
||||
return '12maintainer' |
||||
|
||||
elif key in ('height', 'width'): |
||||
return '40' + str(key) |
||||
|
||||
elif key == 'community_layouts': |
||||
return '97community_layouts' |
||||
|
||||
elif key == 'layout_aliases': |
||||
return '98layout_aliases' |
||||
|
||||
elif key == 'layouts': |
||||
return '99layouts' |
||||
|
||||
else: |
||||
return '50' + str(key) |
||||
|
||||
return key |
||||
|
||||
@property |
||||
def indent_str(self): |
||||
return self.indentation_char * (self.indentation_level * self.indent) |
Loading…
Reference in new issue